자습서: 이벤트 스트림에서 Apache Kafka 엔드포인트를 사용하여 실시간 인텔리전스 간 이벤트 스트리밍 및 사용
이 자습서에서는 Microsoft Fabric 이벤트 스트림의 향상된 기능에서 사용자 지정 엔드포인트 원본에서 제공하는 Apache Kafka 엔드포인트를 사용하여 실시간 인텔리전스로 이벤트를 스트리밍하는 방법을 알아봅니다. (사용자 지정 엔드포인트는 패브릭 이벤트 스트림의 표준 기능에서 사용자 지정 앱이라고 합니다.) 또한 이벤트 스트림의 사용자 지정 엔드포인트 대상에서 Apache Kafka 엔드포인트를 사용하여 이러한 스트리밍 이벤트를 사용하는 방법을 알아봅니다.
이 자습서에서는 다음을 수행합니다.
- eventstream을 만듭니다.
- 사용자 지정 엔드포인트 원본에서 Kafka 엔드포인트를 가져옵니다.
- Kafka 애플리케이션을 사용하여 이벤트를 보냅니다.
- 사용자 지정 엔드포인트 대상에서 Kafka 엔드포인트를 가져옵니다.
- Kafka 애플리케이션을 사용하여 이벤트를 사용합니다.
필수 조건
- Eventstream이 있는 기여자 이상의 권한이 있는 작업 영역에 액세스합니다.
- Windows 컴퓨터를 가져와서 다음 구성 요소를 설치합니다.
- JDK(Java Development Kit) 1.7+
- Maven 이진 보관 파일(다운로드 및 설치)
- Git
Microsoft Fabric에서 이벤트 스트림을 만듭니다
패브릭 포털로 이동합니다.
왼쪽 탐색 모음에서 내 작업 영역을 선택합니다.
내 작업 영역 페이지에서 명령 모음에서 + 새 항목 선택합니다.
새 항목 페이지에서 Eventstream을 검색한 다음, Eventstream을 선택합니다.
새 Eventstream 창에서 eventstream의 이름을 입력한 후, 만들기를 선택합니다.
작업 영역에서 새 Eventstream을 만드는 데 몇 초 정도 걸릴 수 있습니다. Eventstream을 만든 후에는 Eventstream에 원본 추가를 시작할 수 있는 기본 편집기로 이동합니다.
추가된 사용자 지정 엔드포인트 원본에서 Kafka 엔드포인트 검색
Kafka 토픽 엔드포인트를 얻으려면 이벤트 스트림에 사용자 지정 엔드포인트 원본을 추가합니다. 그러면 Kafka 연결 엔드포인트를 쉽게 사용할 수 있고 사용자 지정 엔드포인트 원본 내에 노출됩니다.
eventstream에 사용자 지정 엔드포인트 원본을 추가하려면 다음을 수행합니다.
eventstream 홈페이지에서 빈 이벤트 스트림인 경우 사용자 지정 엔드포인트 사용을 선택합니다.
또는 리본에서 원본> 추가를 선택합니다.
사용자 지정 엔드포인트의 원본 이름 값을 입력한 다음 추가를 선택합니다.
사용자 지정 엔드포인트 원본이 편집 모드에서 eventstream의 캔버스에 표시되는지 확인한 다음 게시를 선택합니다.
Eventstream을 성공적으로 게시한 후 Kafka 엔드포인트에 대한 정보를 포함하여 세부 정보를 검색할 수 있습니다. 캔버스에서 사용자 지정 엔드포인트 원본 타일을 선택합니다. 그런 다음 사용자 지정 엔드포인트 원본 노드의 아래쪽 창에서 Kafka 탭을 선택합니다.
SAS 키 인증 페이지에서 다음과 같은 중요한 Kafka 엔드포인트 정보를 가져올 수 있습니다.
bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.CONNECTION.STRING}";
{YOUR.BOOTSTRAP.SERVER}
는 SAS 키 인증 페이지의 부트스트랩 서버 값입니다.{YOUR.CONNECTION.STRING}
은 연결 문자열-기본 키 값 또는 연결 문자열 보조 키 값일 수 있습니다. 사용할 것을 선택합니다.SAS 키 인증 및 샘플 코드 페이지에 대한 자세한 내용은 Kafka 엔드포인트 세부 정보를 참조하세요.
Kafka 애플리케이션을 사용하여 이벤트 보내기
이전 단계에서 얻은 중요한 Kafka 정보를 사용하여 기존 Kafka 애플리케이션의 연결 구성을 바꿀 수 있습니다. 그런 다음 이벤트 스트림에 이벤트를 보낼 수 있습니다.
다음은 Kafka 프로토콜에 따라 Java로 작성된 Azure Event Hubs SDK를 기반으로 한 애플리케이션입니다. 이 애플리케이션을 사용하여 이벤트를 eventstream으로 스트리밍하려면 다음 단계를 사용하여 Kafka 엔드포인트 정보를 바꾸고 제대로 실행합니다.
Kafka용 Azure Event Hubs 리포지토리를 복제합니다.
azure-event-hubs-for-kafka/quickstart/java/producer로 이동합니다.
src/main/resources/producer.config에서 생산자의 구성 세부 정보를 다음과 같이 업데이트합니다.
bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.CONNECTION.STRING}";
부트스트랩 서버
{YOUR.BOOTSTRAP.SERVER}
바꿉다. 연결 문자열-기본 키 값 또는{YOUR.CONNECTION.STRING}
값으로 바꿉 다. 사용할 것을 선택합니다.다음과 같이 새 토픽 이름으로 토픽 이름을
src/main/java/TestProducer.java
업데이트합니다.private final static String TOPIC = "{YOUR.TOPIC.NAME}";
KAfka 탭 아래
{YOUR.TOPIC.NAME}
의 SAS 키 인증 페이지에서 값을 찾을 수 있습니다.생산자 코드를 실행하고 이벤트를 eventstream으로 스트리밍합니다.
mvn clean package
mvn exec:java -Dexec.mainClass="TestProducer"
이 Kafka 애플리케이션을 사용하여 보낸 데이터를 미리 봅니다. eventstream 이름을 표시하는 중간 노드인 eventstream 노드를 선택합니다.
머리글이 없는 구분 기호 쉼표가 있는 데이터 형식 CSV를 선택합니다. 이 선택은 애플리케이션이 이벤트 데이터를 스트리밍한 형식과 일치합니다.
추가된 사용자 지정 엔드포인트 대상에서 Kafka 엔드포인트 가져오기
사용자 지정 엔드포인트 대상을 추가하여 Eventstream에서 이벤트를 소비하기 위한 Kafka 연결 엔드포인트 세부 정보를 가져올 수 있습니다. 대상을 추가한 후 라이브 보기에서 대상의 세부 정보 창에서 정보를 가져올 수 있습니다.
기본 페이지에서 소비자 그룹 값을 가져올 수 있습니다. 나중에 Kafka 소비자 애플리케이션을 구성하려면 이 값이 필요합니다.
SAS 키 인증 페이지에서 중요한 Kafka 엔드포인트 정보를 가져올 수 있습니다.
bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.CONNECTION.STRING}";
{YOUR.BOOTSTRAP.SERVER}
는 부트스트랩 서버 값입니다.
{YOUR.CONNECTION.STRING}
은 연결 문자열-기본 키 값 또는 연결 문자열 보조 키 값일 수 있습니다. 사용할 것을 선택합니다.
Kafka 애플리케이션을 사용하여 이벤트 사용
이제 Kafka용 Azure Event Hubs 리포지토리의 다른 애플리케이션을 사용하여 eventstream의 이벤트를 사용할 수 있습니다. Eventstream에서 이벤트를 사용하기 위해 이 애플리케이션을 사용하려면 다음 단계에 따라 Kafka 엔드포인트 세부 정보를 바꾸고 적절하게 실행합니다.
Kafka용 Azure Event Hubs 리포지토리를 복제합니다.
azure-event-hubs-for-kafka/quickstart/java/consumer로 이동합니다.
src/main/resources/consumer.config에서 소비자의 구성 세부 정보를 다음과 같이 업데이트합니다.
bootstrap.servers={YOUR.BOOTSTRAP.SERVER}
group.id={YOUR.EVENTHUBS.CONSUMER.GROUP}
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString"
password="{YOUR.CONNECTION.STRING}";
부트스트랩 서버
{YOUR.BOOTSTRAP.SERVER}
바꿉다. 사용자 지정 엔드포인트 대상에 대한 세부 정보{YOUR.EVENTHUBS.CONSUMER.GROUP}
기본 페이지에서 값을 가져올 수 있습니다. 연결 문자열-기본 키 값 또는{YOUR.CONNECTION.STRING}
값으로 바꿉 다. 사용할 것을 선택합니다.다음과 같이 src/main/java/TestConsumer.java SAS 키 인증 페이지에서 새 토픽 이름으로 토픽 이름을 업데이트합니다
private final static String TOPIC = "{YOUR.TOPIC.NAME}";
.KAfka 탭 아래
{YOUR.TOPIC.NAME}
의 SAS 키 인증 페이지에서 값을 찾을 수 있습니다.소비자 코드를 실행하고 이벤트를 eventstream으로 스트리밍합니다.
mvn clean package
mvn exec:java -Dexec.mainClass="TestConsumer"
Eventstream에 들어오는 이벤트가 있는 경우(예: 이전 생산자 애플리케이션이 여전히 실행 중임) 소비자가 이제 eventstream 토픽에서 이벤트를 수신하는지 확인합니다.
기본적으로 Kafka 소비자는 시작이 아닌 스트림의 끝에서 읽습니다. Kafka 소비자는 소비자 실행을 시작하기 전에 큐에 대기 중인 이벤트를 읽지 않습니다. 소비자를 시작하지만 이벤트를 수신하지 않는 경우 소비자가 폴링하는 동안 생산자를 다시 실행해 보세요.
결론
축하합니다. Eventstream에서 노출된 Kafka 엔드포인트를 사용하여 이벤트 스트림 내에서 이벤트를 스트리밍하고 사용하는 방법을 알아보았습니다. Kafka 토픽에서 보내거나 사용하는 애플리케이션이 이미 있는 경우 동일한 애플리케이션을 사용하여 코드 변경 없이 이벤트 스트림 내에서 이벤트를 보내거나 사용할 수 있습니다. 연결의 구성 정보를 변경하기만 하면 됩니다.