Azure Event Hubs
살펴보기
Event란?
• 이벤트는 상태 변경에 대한 가벼운 알람
• 이벤트 게시자는 이벤트 처리에 대한 관심 X
• 이벤트 소비자가 어떻게 처리할지 결정
Azure Event Hubs 란?
• 초당 수백만 개의 이벤트를 수신하여 처리할 수 있는
빅 데이터 스트리밍 플랫폼, 이벤트 수집 서비스
• 분산된 소프트웨어 & 장치에서 생성된 이벤트, 데이터를 처리하고 저장
이벤트 생성자와 소비자 사이에서 작용하는 구성요소 또는 서비스
즉, 이벤트 생성과 소비를 분리
Publisher
Consumer
Consumer
ConsumerPublisher
Publisher
Key Features
Event Publisher
• Event Hub 로 데이터를 전송하는 모든 엔터티는 Event Producer 또는 Event
Publisher
• 이벤트 게시자들은 HTTP 또는 AMQP 1.0 을 사용해 이벤트를 게시
• 이벤트는 256KB으로 제한
Event Consumers
• Event Hubs에서 이벤트 데이터를 읽는 모든 엔터티는 Event Consumer
• 모든 이벤트 소비자들은 AMQP 1.0 세션을 통해 연결, 이를 통해서 전달
Consumer Group
• 전체 Event Hub의 View, 즉 상태 위치 또는 Offset
• Consumer Group을 통해서 여러 소비 응용프로그램은 이벤트 스트림을 별도로 볼 수 있으며
이벤트를 독립적으로 소모
• Default Consumer Group, 최대 20개 까지 등록 가능
• Azure Blob Storage 저장
Partition
• Event Hubs에서 보유하는 순서가 지정된 이벤트 시퀀스
• 최신 이벤트가 도착하면 맨 끝에 추가, “커밋 로그”
• 파티션의 수 2 ~ 32 까지 가능, 최초 설정 후 변경 불가
Partition 1
Partition 2
Partition 3
Partition N NewerOlder
OffSet
Event Hub
Capture
Consumer
• 스트림에서 이벤트 보유 기간 최대 7일
Time & Size Auto
Partition Key
• Partition Key를 통해 이벤트를 특정 Partition에 매핑
• Partition Key는 Publisher가 제공
• Partition Key를 지정하지 않을 경우 Round-Robin으로 할당
Partition 1
Partition 2
Partition 3
Partition N
Publisher1
Publisher2
Publisher3
ℱ 𝑥
Event Hub
Checkpointing
• 이벤트 시퀀스 내에서 자신의 위치를 표시 및 커밋하는 프로세스
• 메시지가 소비자에게 전달되어 제대로 처리됨을 확인
• Partition에 연결이 끊겼을 경우, 마지막으로 제출된 검사 점부터 읽기 시작
Scalable
• Automatically scale up
• Mega Bytes --> Giga Bytes or Tera Bytes
Event Hubs Stream Architecture
Partition 1
Partition 2
Partition 3
Partition 4
Publisher
Publisher
Publisher
ℱ 𝑥
Consumer
Consumer
Consumer
Consumer
Consumer
Consumer
Consumer
Consumer
Consumer
Group 1
Consumer
Group 2
Publisher HTTP &
AMQP 1.0
AMQP 1.0
Other Services
Azure Event hubs

Azure Event hubs

  • 1.
  • 2.
  • 4.
    • 이벤트는 상태변경에 대한 가벼운 알람 • 이벤트 게시자는 이벤트 처리에 대한 관심 X • 이벤트 소비자가 어떻게 처리할지 결정
  • 5.
  • 6.
    • 초당 수백만개의 이벤트를 수신하여 처리할 수 있는 빅 데이터 스트리밍 플랫폼, 이벤트 수집 서비스 • 분산된 소프트웨어 & 장치에서 생성된 이벤트, 데이터를 처리하고 저장
  • 7.
    이벤트 생성자와 소비자사이에서 작용하는 구성요소 또는 서비스 즉, 이벤트 생성과 소비를 분리 Publisher Consumer Consumer ConsumerPublisher Publisher
  • 8.
  • 9.
    Event Publisher • EventHub 로 데이터를 전송하는 모든 엔터티는 Event Producer 또는 Event Publisher • 이벤트 게시자들은 HTTP 또는 AMQP 1.0 을 사용해 이벤트를 게시 • 이벤트는 256KB으로 제한
  • 10.
    Event Consumers • EventHubs에서 이벤트 데이터를 읽는 모든 엔터티는 Event Consumer • 모든 이벤트 소비자들은 AMQP 1.0 세션을 통해 연결, 이를 통해서 전달
  • 11.
    Consumer Group • 전체Event Hub의 View, 즉 상태 위치 또는 Offset • Consumer Group을 통해서 여러 소비 응용프로그램은 이벤트 스트림을 별도로 볼 수 있으며 이벤트를 독립적으로 소모 • Default Consumer Group, 최대 20개 까지 등록 가능 • Azure Blob Storage 저장
  • 12.
    Partition • Event Hubs에서보유하는 순서가 지정된 이벤트 시퀀스 • 최신 이벤트가 도착하면 맨 끝에 추가, “커밋 로그” • 파티션의 수 2 ~ 32 까지 가능, 최초 설정 후 변경 불가 Partition 1 Partition 2 Partition 3 Partition N NewerOlder OffSet Event Hub
  • 13.
    Capture Consumer • 스트림에서 이벤트보유 기간 최대 7일 Time & Size Auto
  • 14.
    Partition Key • PartitionKey를 통해 이벤트를 특정 Partition에 매핑 • Partition Key는 Publisher가 제공 • Partition Key를 지정하지 않을 경우 Round-Robin으로 할당 Partition 1 Partition 2 Partition 3 Partition N Publisher1 Publisher2 Publisher3 ℱ 𝑥 Event Hub
  • 15.
    Checkpointing • 이벤트 시퀀스내에서 자신의 위치를 표시 및 커밋하는 프로세스 • 메시지가 소비자에게 전달되어 제대로 처리됨을 확인 • Partition에 연결이 끊겼을 경우, 마지막으로 제출된 검사 점부터 읽기 시작
  • 16.
    Scalable • Automatically scaleup • Mega Bytes --> Giga Bytes or Tera Bytes
  • 17.
    Event Hubs StreamArchitecture Partition 1 Partition 2 Partition 3 Partition 4 Publisher Publisher Publisher ℱ 𝑥 Consumer Consumer Consumer Consumer Consumer Consumer Consumer Consumer Consumer Group 1 Consumer Group 2 Publisher HTTP & AMQP 1.0 AMQP 1.0
  • 18.