Azure Event Hubs: 네이티브 Apache Kafka 지원을 사용하는 실시간 데이터 스트리밍 플랫폼
Azure Event Hubs는 짧은 대기 시간으로 어떤 원본에서 어떤 대상으로든 초당 수백만 개의 이벤트를 스트리밍할 수 있는 클라우드의 네이티브 데이터 스트리밍 서비스입니다. Event Hubs는 Apache Kafka와 호환됩니다. 코드 변경 없이 기존 Kafka 워크로드를 실행할 수 있습니다.
기업은 Event Hubs를 사용하여 스트리밍 데이터를 수집하고 저장할 수 있습니다. 기업은 스트리밍 데이터를 사용하여 중요한 인사이트를 얻고, 실시간 분석을 추진하고, 이벤트가 발생하는 대로 응답할 수 있습니다. 이 데이터를 사용하여 전반적인 효율성과 고객 환경을 향상시킬 수 있습니다.
Event Hubs는 Azure를 기반으로 빌드하는 모든 이벤트 스트리밍 솔루션의 기본 이벤트 수집 계층입니다. Azure 내부 및 외부의 데이터 및 분석 서비스와 통합되어 다음과 같은 사용 사례를 제공하는 완전한 데이터 스트리밍 파이프라인을 빌드합니다.
- Azure Stream Analytics 를 사용하여 실시간 인사이트를 생성하여 이벤트 허브에서 데이터를 처리합니다.
- Azure Data Explorer를 사용하여 스트리밍 데이터를 분석하고 탐색합니다.
- Event Hubs의 스트리밍 데이터에서 실행되는 고유한 클라우드 네이티브 애플리케이션, 함수 또는 마이크로 서비스를 만듭니다.
- 스트리밍 데이터의 품질과 호환성을 보장하기 위해 기본 제공 Azure 스키마 레지스트리를 사용하여 스키마 유효성 검사를 사용하여 이벤트를 스트리밍합니다.
주요 기능
이어지는 섹션에서는 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는 클라우드 네이티브 브로커 엔진으로 빌드됩니다. 이러한 이유로 성능 향상, 비용 효율성 향상 및 운영 오버헤드 없이 Kafka 워크로드를 실행할 수 있습니다.
자세한 내용은 Apache Kafka용 Azure Event Hubs를 참조하세요.
Event Hubs의 스키마 레지스트리
Event Hubs의 Azure 스키마 레지스트리는 이벤트 스트리밍 애플리케이션의 스키마를 관리하기 위한 중앙 집중식 리포지토리를 제공합니다. 스키마 레지스트리는 모든 Event Hubs 네임스페이스와 함께 무료로 제공됩니다. 스키마 레지스트리는 Kafka 애플리케이션 또는 Event Hubs SDK 기반 애플리케이션과 통합됩니다.
스키마 레지스트리는 이벤트 생산자 및 소비자 간에 데이터 호환성 및 일관성을 보장합니다. 스키마 진화, 유효성 검사 및 거버넌스를 가능하게 하고 효율적인 데이터 교환 및 상호 운용성을 촉진합니다.
스키마 레지스트리는 기존 Kafka 애플리케이션과 통합되며 Avro 및 JSON 스키마를 비롯한 여러 스키마 형식을 지원합니다.
자세한 내용은 Event Hubs의 Azure 스키마 레지스트리를 참조하세요.
Stream Analytics를 사용하여 스트리밍 이벤트 실시간 처리
Event Hubs는 Azure Stream Analytics와 통합하여 실시간 스트림 처리를 지원합니다. 기본 제공 노코드 편집기를 사용하면 코드를 작성하지 않고도 끌어서 놓기 기능으로 Stream Analytics 작업을 개발할 수 있습니다.
또는 개발자는 SQL 기반 Stream Analytics 쿼리 언어를 사용하여 실시간 스트림 처리를 수행하고 스트리밍 데이터를 분석하기 위한 다양한 함수를 활용할 수 있습니다.
자세한 내용은 목차의 Azure Stream Analytics 통합 섹션에 있는 문서를 참조하세요.
Azure Data Explorer를 사용하여 스트리밍 데이터 탐색
Azure Data Explorer는 고성능을 제공하고 거의 실시간으로 대량의 데이터를 분석할 수 있는 빅 데이터 분석을 위한 완전 관리형 플랫폼입니다. Event Hubs를 Azure Data Explorer와 통합하면 스트리밍 데이터의 거의 실시간 분석 및 탐색을 수행할 수 있습니다.
자세한 내용은 이벤트 허브에서 Azure Data Explorer로 데이터 수집을 참조하세요.
Azure Functions, SDK 및 Kafka 에코시스템
Event Hubs를 사용하면 실시간으로 스트림을 수집, 버퍼링, 저장, 처리하여 실행 가능한 인사이트를 얻을 수 있습니다. Event Hubs는 분할된 소비자 모델을 사용합니다. Event Hubs를 사용하여 여러 애플리케이션에서 스트림을 동시에 처리할 수 있으며 처리 속도를 제어할 수 있습니다. 또한 Event Hubs를 Azure Functions와 통합하여 서버리스 아키텍처를 구현할 수 있습니다.
업계 표준 AMQP 1.0 프로토콜에 광범위한 에코시스템을 사용할 수 있습니다. SDK를 .NET, Java, Python, JavaScript와 같은 언어로 사용할 수 있어 Event Hubs에서 스트림 처리를 시작할 수 있습니다. 지원되는 모든 클라이언트 언어는 하위 수준 통합을 제공합니다.
또한 에코시스템을 통해 Azure Functions, Azure Spring Apps, Kafka Connectors 및 기타 데이터 분석 플랫폼 및 기술(예: Apache Spark 및 Apache Flink)과 통합할 수 있습니다.
Event Hubs 에뮬레이터를 사용하여 로컬 개발 지원
Azure Event Hubs 에뮬레이터는 Event Hubs에 대한 로컬 개발 환경을 제공합니다. 에뮬레이터를 사용하여 클라우드 간섭으로부터 격리된 서비스에 대한 코드를 개발하고 테스트할 수 있습니다. 자세한 내용은 Event Hubs 에뮬레이터를 참조 하세요.
유연하고 비용 효율적인 이벤트 스트리밍
Event Hubs에 대한 표준, 프리미엄 또는 전용 계층을 통해 유연하고 비용 효율적인 이벤트 스트리밍을 경험할 수 있습니다. 이러한 옵션은 몇 MB/초에서 몇 GB/초까지의 데이터 스트리밍 요구 사항을 충족합니다. 요구 사항에 적합한 일치 항목을 선택할 수 있습니다.
확장성
Event Hubs를 사용하면 데이터 스트림을 메가바이트 단위로 시작하고 기가바이트 또는 테라바이트 단위로 늘릴 수 있습니다. 자동 확장 기능은 사용 요구 사항에 맞게 처리량 단위 또는 처리 단위 수를 조정하는 데 사용할 수 있는 옵션 중 하나입니다.
대용량 메시지 스트리밍 지원
대부분의 스트리밍 시나리오에서 데이터는 가볍고 일반적으로 1MB 미만이며 처리량이 높은 것이 특징입니다. 메시지를 더 작은 세그먼트로 나눌 수 없는 인스턴스도 있습니다. Event Hubs는 추가 비용 없이 셀프 서비스 확장성 있는 전용 클러스터를 사용하여 최대 20MB의 이벤트를 수용할 수 있습니다 . 이 기능을 사용하면 Event Hubs가 광범위한 메시지 크기를 처리하여 중단 없는 비즈니스 작업을 보장할 수 있습니다. 자세한 내용은 Azure Event Hubs를 사용하여 대용량 메시지 보내기 및 받기를 참조하세요.
장기 보존 및 일괄 처리 분석을 위한 스트리밍 데이터 캡처
장기 보존 또는 마이크로 일괄 처리를 위해 Azure Blob Storage 또는 Azure Data Lake Storage에서 거의 실시간으로 데이터를 캡처합니다. 실시간 분석을 파생하는 데 사용하는 것과 동일한 스트림에서 이 동작을 수행할 수 있습니다. 이벤트 데이터의 캡처는 빠르게 설정할 수 있습니다.
작동 방식
Event Hubs는 이벤트 소비자와 이벤트 생산자를 분리하는 시간 보존 버퍼가 있는 통합 이벤트 스트리밍 플랫폼을 제공합니다. 생산자 및 소비자 애플리케이션은 여러 프로토콜을 통해 대규모 데이터 수집을 수행할 수 있습니다.
다음 다이어그램에서는 Event Hubs 아키텍처의 주요 구성 요소를 보여 줍니다.
Event Hubs의 주요 기능 구성 요소는 다음과 같습니다.
- 생산자 애플리케이션: 이 애플리케이션은 Event Hubs SDK 또는 Kafka 생산자 클라이언트를 사용하여 이벤트 허브에 데이터를 수집할 수 있습니다.
- 네임스페이스: 하나 이상의 이벤트 허브 또는 Kafka 토픽에 대한 관리 컨테이너입니다. 스트리밍 용량 할당, 네트워크 보안 구성, 지역 재해 복구 사용과 같은 관리 작업이 네임스페이스 수준에서 처리됩니다.
- Event Hubs/Kafka 토픽: Event Hubs에서 이벤트를 이벤트 허브 또는 Kafka 토픽으로 구성할 수 있습니다. 이는 하나 이상의 파티션을 구성할 수 있는 추가 전용 분산 로그입니다.
- 파티션: 이벤트 허브의 크기를 조정하는 데 사용됩니다. 파티션은 고속도로의 차선 같습니다. 스트리밍 처리량이 더 필요한 경우 파티션을 더 추가할 수 있습니다.
- 소비자 애플리케이션: 이 애플리케이션은 이벤트 로그를 검색하고 소비자 오프셋을 유지 관리하여 데이터를 사용할 수 있습니다. 소비자는 Kafka 소비자 클라이언트 또는 Event Hubs SDK 클라이언트일 수 있습니다.
- 소비자 그룹: 이 논리적 소비자 인스턴스 그룹은 이벤트 허브 또는 Kafka 토픽에서 데이터를 읽습니다. 이를 통해 여러 소비자가 각자의 속도와 자체 오프셋을 사용하여 이벤트 허브에서 동일한 스트리밍 데이터를 독립적으로 읽을 수 있습니다.
관련 콘텐츠
Event Hubs 사용을 시작하려면 다음 빠른 시작을 참조하세요.
AMQP(Event Hubs SDK)를 사용하여 데이터 스트리밍
다음 샘플 중 원하는 것을 사용하여 SDK를 사용하여 Event Hubs로 데이터를 스트리밍할 수 있습니다.
- .NET Core
- Java
- 스프링
- Python
- JavaScript
- Go
- C(보내기 전용)
- Apache Storm(받기 전용)
Apache Kafka를 사용하여 데이터 스트리밍
다음 샘플을 사용하여 Kafka 애플리케이션에서 Event Hubs로 데이터를 스트리밍할 수 있습니다.
스키마 레지스트리를 사용하여 스키마 유효성 검사
Event Hubs 스키마 레지스트리를 사용하여 이벤트 스트리밍 애플리케이션에 대한 스키마 유효성 검사를 수행할 수 있습니다.