Azure Event Hubs 살펴보기
Azure Event Hubs는 짧은 대기 시간으로 어떤 원본에서 어떤 대상으로든 초당 수백만 개의 이벤트를 스트리밍할 수 있는 클라우드의 네이티브 데이터 스트리밍 서비스입니다. Event Hubs는 Apache Kafka와 호환됩니다. 코드 변경 없이 기존 Kafka 워크로드를 실행할 수 있습니다.
Event Hubs를 사용하면 실시간으로 스트림을 수집, 버퍼링, 저장, 처리하여 실행 가능한 인사이트를 얻을 수 있습니다. Event Hubs는 분할된 소비자 모델을 사용합니다. Event Hubs를 사용하여 여러 애플리케이션에서 스트림을 동시에 처리할 수 있으며 처리 속도를 제어할 수 있습니다. 또한 Event Hubs를 Azure Functions와 통합하여 서버리스 아키텍처를 구현할 수 있습니다.
업계 표준 AMQP 1.0 프로토콜에 광범위한 에코시스템을 사용할 수 있습니다. SDK를 .NET, Java, Python, JavaScript와 같은 언어로 사용할 수 있어 Event Hubs에서 스트림 처리를 시작할 수 있습니다. 지원되는 모든 클라이언트 언어는 하위 수준 통합을 제공합니다.
주요 기능
이어지는 섹션에서는 Azure Event Hubs의 주요 기능에 관해 알아봅니다.
Azure Event Hubs의 Apache Kafka
Event Hubs는 AMQP(고급 메시지 큐 프로토콜), Apache Kafka 및 HTTPS 프로토콜을 기본적으로 지원하는 다중 프로토콜 이벤트 스트리밍 엔진입니다. Apache Kafka를 지원하므로 코드를 변경하지 않고도 Kafka 워크로드를 Event Hubs로 가져올 수 있습니다. 직접 Kafka 클러스터를 설정, 구성 또는 관리할 필요가 없고, Azure에 기본 제공되지 않는 Kafka-as-a-Service 제품을 사용할 필요도 없습니다.
Event Hubs의 스키마 레지스트리
Event Hubs의 Azure 스키마 레지스트리는 이벤트 스트리밍 애플리케이션의 스키마를 관리하기 위한 중앙 집중식 리포지토리를 제공합니다. 스키마 레지스트리는 모든 Event Hubs 네임스페이스와 함께 무료로 제공됩니다. 스키마 레지스트리는 Kafka 애플리케이션 또는 Event Hubs SDK 기반 애플리케이션과 통합됩니다.
Stream Analytics를 사용하여 스트리밍 이벤트 실시간 처리
Event Hubs는 Azure Stream Analytics와 통합하여 실시간 스트림 처리를 지원합니다. 기본 제공 노코드 편집기를 사용하면 코드를 작성하지 않고도 끌어서 놓기 기능으로 Stream Analytics 작업을 개발할 수 있습니다.
또는 개발자는 SQL 기반 Stream Analytics 쿼리 언어를 사용하여 실시간 스트림 처리를 수행하고 스트리밍 데이터를 분석하기 위한 다양한 함수를 활용할 수 있습니다.
주요 개념
Event Hubs에는 다음과 같은 주요 구성 요소가 포함되어 있습니다.
- 생산자 애플리케이션: 이 애플리케이션은 Event Hubs SDK 또는 Kafka 생산자 클라이언트를 사용하여 이벤트 허브에 데이터를 수집할 수 있습니다.
- 네임스페이스: 하나 이상의 이벤트 허브 또는 Kafka 토픽에 대한 관리 컨테이너입니다. 스트리밍 용량 할당, 네트워크 보안 구성, 지역 재해 복구 사용과 같은 관리 작업이 네임스페이스 수준에서 처리됩니다.
- Event Hubs/Kafka 토픽: Event Hubs에서 이벤트를 이벤트 허브 또는 Kafka 토픽으로 구성할 수 있습니다. 이는 하나 이상의 파티션을 구성할 수 있는 추가 전용 분산 로그입니다.
- 파티션: 이벤트 허브의 크기를 조정하는 데 사용됩니다. 파티션은 고속도로의 차선 같습니다. 스트리밍 처리량이 더 필요한 경우 파티션을 더 추가할 수 있습니다.
- 소비자 애플리케이션: 이 애플리케이션은 이벤트 로그를 검색하고 소비자 오프셋을 유지 관리하여 데이터를 사용할 수 있습니다. 소비자는 Kafka 소비자 클라이언트 또는 Event Hubs SDK 클라이언트일 수 있습니다.
- 소비자 그룹: 이 논리적 소비자 인스턴스 그룹은 이벤트 허브 또는 Kafka 토픽에서 데이터를 읽습니다. 이를 통해 여러 소비자가 각자의 속도와 자체 오프셋을 사용하여 이벤트 허브에서 동일한 스트리밍 데이터를 독립적으로 읽을 수 있습니다.