Azure Event Hubs의 기능 및 용어Features and terminology in Azure Event Hubs

Azure Event Hubs는 확장 가능한 처리 서비스로 대량의 이벤트 및 데이터를 수집하여 처리하며, 대기 시간이 낮고 안정성이 우수합니다.Azure Event Hubs is a scalable event processing service that ingests and processes large volumes of events and data, with low latency and high reliability. 개요는 Event Hubs란?을 참조하세요.See What is Event Hubs? for a high-level overview.

이 문서는 개요 문서의 정보를 기반으로 하며, Event Hubs 구성 요소 및 기능에 대한 기술 정보와 구현 정보를 제공합니다.This article builds on the information in the overview article, and provides technical and implementation details about Event Hubs components and features.

네임스페이스Namespace

Event Hubs 네임스페이스는 정규화된 도메인 이름으로 참조되는 고유한 범위 지정 컨테이너를 제공하며, 하나 이상의 이벤트 허브 또는 Kafka 항목을 만듭니다.An Event Hubs namespace provides a unique scoping container, referenced by its fully qualified domain name, in which you create one or more event hubs or Kafka topics.

Apache Kafka용 Event HubsEvent Hubs for Apache Kafka

이 기능은 고객이 Kafka 프로토콜을 사용하여 Event Hubs에 지시할 수 있는 엔드포인트를 제공합니다.This feature provides an endpoint that enables customers to talk to Event Hubs using the Kafka protocol. 이 통합에서는 고객에게 Kafka 엔드포인트를 제공합니다.This integration provides customers a Kafka endpoint. 이를 통해 Event Hubs에 지시하도록 기존 Kafka 애플리케이션을 구성하여 고유한 Kafka 클러스터를 실행하는 대안을 제공할 수 있습니다.This enables customers to configure their existing Kafka applications to talk to Event Hubs, giving an alternative to running their own Kafka clusters. Apache Kafka용 Event Hubs는 Kafka 프로토콜 1.0 이상을 지원합니다.Event Hubs for Apache Kafka supports Kafka protocol 1.0 and later.

이 통합을 사용 하 여 Kafka 클러스터를 실행 하거나 Zookeeper를 사용 하 여 관리할 필요가 없습니다.With this integration, you don't need to run Kafka clusters or manage them with Zookeeper. 캡처, 자동 확장 및 지리적 재해 복구 등의 까다로운 Event Hubs 기능 중 일부를 사용할 수도 있습니다.This also allows you to work with some of the most demanding features of Event Hubs like Capture, Auto-inflate, and Geo-disaster Recovery.

이 통합을 사용하면 Mirror Maker와 같은 애플리케이션 또는 Kafka Connect와 같은 프레임워크를 구성만 변경하여 클러스터 없이 작동시킬 수 있습니다.This integration also allows applications like Mirror Maker or framework like Kafka Connect to work clusterless with just configuration changes.

이벤트 게시자Event publishers

Event Hub로 데이터를 전송하는 모든 엔터티는 이벤트 생산자 또는 이벤트 게시자입니다.Any entity that sends data to an event hub is an event producer, or event publisher. 이벤트 게시자는 HTTPS 또는 AMQP 1.0 또는 Kafka 1.0 이상을 사용하여 이벤트를 게시할 수 있습니다.Event publishers can publish events using HTTPS or AMQP 1.0 or Kafka 1.0 and later. 이벤트 게시자는 SAS(공유 액세스 서명) 토큰을 사용하여 자신을 Event Hub로 식별하고 고유 ID를 구성하거나 일반적인 SAS 토큰을 사용합니다.Event publishers use a Shared Access Signature (SAS) token to identify themselves to an event hub, and can have a unique identity, or use a common SAS token.

이벤트 게시Publishing an event

AMQP 1.0, Kafka 1.0 이상 또는 HTTPS를 통해 이벤트를 게시할 수 있습니다.You can publish an event via AMQP 1.0, Kafka 1.0 (and later), or HTTPS. Event Hubs는 .NET 클라이언트에서 Event Hub로 이벤트를 게시하기 위한 클라이언트 라이브러리 및 클래스를 제공합니다.Event Hubs provides client libraries and classes for publishing events to an event hub from .NET clients. 다른 런타임 및 플랫폼의 경우, Apache Qpid와 같은 모든 AMQP 1.0 클라이언트를 사용할 수 있습니다.For other runtimes and platforms, you can use any AMQP 1.0 client, such as Apache Qpid. 이벤트를 개별적으로 게시하거나 일괄처리할 수 있습니다.You can publish events individually, or batched. 단일 게시(이벤트 데이터 인스턴스)는 단일 이벤트 또는 일괄 처리인지에 관계 없이 1MB로 제한됩니다.A single publication (event data instance) has a limit of 1 MB, regardless of whether it is a single event or a batch. 이 임계값보다 큰 이벤트를 게시하면 오류가 발생합니다.Publishing events larger than this threshold results in an error. 게시자가 Event Hub 내 파티션을 모르고 파티션 키 (다음 섹션에서 도입된) 또는 해당 SAS 토큰을 통해 자신의 ID를 지정하는 것이 가장 좋습니다.It is a best practice for publishers to be unaware of partitions within the event hub and to only specify a partition key (introduced in the next section), or their identity via their SAS token.

AMQP 또는 HTTPS 사용 선택은 사용량 시나리오에 해당됩니다.The choice to use AMQP or HTTPS is specific to the usage scenario. 전송 수준 보안(TLS) 또는 SSL/TLS 외에 AMQP는 영구 양방향 소켓을 설정해야 합니다.AMQP requires the establishment of a persistent bidirectional socket in addition to transport level security (TLS) or SSL/TLS. AMQP에서는 세션을 초기화할 때 네트워크 비용이 높지만, HTTPS에는 모든 요청에 대해 추가 SSL 오버헤드가 필요합니다.AMQP has higher network costs when initializing the session, however HTTPS requires additional SSL overhead for every request. AMQP는 빈번한 게시자에게 더 높은 성능을 제공합니다.AMQP has higher performance for frequent publishers.

Event Hubs

Event Hubs는 파티션 키 값을 공유하는 모든 이벤트가 동일한 파티션으로 순서대로 배달되도록 합니다.Event Hubs ensures that all events sharing a partition key value are delivered in order, and to the same partition. 파티션 키가 게시자 정책과 함께 사용되는 경우 게시자 ID와 파티션 키 값이 일치해야 합니다.If partition keys are used with publisher policies, then the identity of the publisher and the value of the partition key must match. 그렇지 않은 경우 오류가 발생합니다.Otherwise, an error occurs.

게시자 정책Publisher policy

Event Hubs는 게시자 정책을 통한 이벤트 게시자에 대한 세부적 제어를 사용합니다.Event Hubs enables granular control over event publishers through publisher policies. 게시자 정책은 많은 수의 독립 이벤트 게시자를 지원하도록 설계된 런타임 기능입니다.Publisher policies are run-time features designed to facilitate large numbers of independent event publishers. 게시자 정책을 사용하여 다음 메커니즘을 사용하여 Event Hub로 이벤트를 게시하는 경우 각 게시자는 자체 고유 식별자를 사용합니다.With publisher policies, each publisher uses its own unique identifier when publishing events to an event hub, using the following mechanism:

//[my namespace].servicebus.windows.net/[event hub name]/publishers/[my publisher name]

시간에 앞서 게시자 이름을 미리 만들 필요가 없지만, 독립 게시자 ID를 보장하기 위해 이벤트를 게시하는 경우 사용하는 SAS 토큰과 일치해야 합니다.You don't have to create publisher names ahead of time, but they must match the SAS token used when publishing an event, in order to ensure independent publisher identities. 게시자 정책을 사용하는 경우 PartitionKey 값이 게시자 이름으로 설정됩니다.When using publisher policies, the PartitionKey value is set to the publisher name. 제대로 작동하려면 이 값이 일치해야 합니다.To work properly, these values must match.

캡처Capture

Event Hubs 캡처를 사용하면 Event Hubs의 스트리밍 데이터를 자동으로 캡처하고 선택한 Blob Storage 계정 또는 Azure Data Lake 서비스 계정에 저장할 수 있습니다.Event Hubs Capture enables you to automatically capture the streaming data in Event Hubs and save it to your choice of either a Blob storage account, or an Azure Data Lake Service account. Azure Portal에서 캡처를 사용하도록 설정하고 캡처를 수행할 최소 크기와 기간을 지정할 수 있습니다.You can enable Capture from the Azure portal, and specify a minimum size and time window to perform the capture. Event Hubs 캡처를 사용하여 자신의 Azure Blob Storage 계정 및 컨테이너 또는 Azure Data Lake 서비스 계정을 지정합니다. 이 중 하나는 캡처된 데이터를 저장하는 데 사용됩니다.Using Event Hubs Capture, you specify your own Azure Blob Storage account and container, or Azure Data Lake Service account, one of which is used to store the captured data. 캡처된 데이터는 Apache Avro 형식으로 기록됩니다.Captured data is written in the Apache Avro format.

파티션Partitions

Event Hubs는 각 소비자만이 특정 하위 집합, 파티션 또는 메시지 스트림을 읽는 파티션된 소비자 패턴을 통해 메시지 스트리밍을 제공합니다.Event Hubs provides message streaming through a partitioned consumer pattern in which each consumer only reads a specific subset, or partition, of the message stream. 이 패턴은 이벤트 처리를 위한 가로 눈금을 사용하며 큐 및 항목에 사용할 수 없는 기타 스트림 중심 기능을 제공합니다.This pattern enables horizontal scale for event processing and provides other stream-focused features that are unavailable in queues and topics.

파티션은 Event Hub에서 보유하는 순서가 지정된 이벤트 시퀀스입니다.A partition is an ordered sequence of events that is held in an event hub. 최신 이벤트가 도착하면 이 시퀀스의 끝에 추가됩니다.As newer events arrive, they are added to the end of this sequence. 파티션을 "커밋 로그"로 생각할 수 있습니다.A partition can be thought of as a "commit log."

Event Hubs

Event Hubs는 Event Hub의 모든 파티션에 적용되도록 구성된 보존 시간에 대한 데이터를 유지합니다.Event Hubs retains data for a configured retention time that applies across all partitions in the event hub. 시간 단위로 이벤트가 만료됩니다. 명시적으로 삭제할 수 없습니다.Events expire on a time basis; you cannot explicitly delete them. 파티션은 독립적이며 자체 데이터 시퀀스를 포함하기 때문에 종종 다른 속도로 증가합니다.Because partitions are independent and contain their own sequence of data, they often grow at different rates.

Event Hubs

파티션 수는 만들 때 지정되며 2와 32 사이여야 합니다.The number of partitions is specified at creation and must be between 2 and 32. 파티션 수는 변경할 수 없으므로 파티션 수를 설정할 때 장기적인 규모를 고려해야 합니다.The partition count is not changeable, so you should consider long-term scale when setting partition count. 파티션은 애플리케이션을 사용하는 데 필요한 다운스트림 병렬 처리와 관련된 데이터 구성 메커니즘입니다.Partitions are a data organization mechanism that relates to the downstream parallelism required in consuming applications. Event Hub의 파티션 수는 예상되는 동시 판독기의 수와 직접적으로 관련이 있습니다.The number of partitions in an event hub directly relates to the number of concurrent readers you expect to have. Event Hubs 팀에 문의하여 32개를 초과하는 파티션 수를 늘릴 수 있습니다.You can increase the number of partitions beyond 32 by contacting the Event Hubs team.

만들 때 가장 높은 값 (32)으로 설정 해야 할 수 있습니다.You may want to set it to be the highest possible value, which is 32, at the time of creation. 두 개 이상의 파티션이 있는 경우에는 두 개 이상의 파티션이 중복 된 상태를 유지 32 하도록 발신자를 구성 하지 않는 한, 순서를 유지 하지 않고 여러 파티션으로 이벤트를 보냅니다.Remember that having more than one partition will result in events sent to multiple partitions without retaining the order, unless you configure senders to only send to a single partition out of the 32 leaving the remaining 31 partitions redundant. 이전 경우에는 모든 32 파티션에서 이벤트를 읽어야 합니다.In the former case, you will have to read events across all 32 partitions. 후자의 경우에는 이벤트 프로세서 호스트에서 수행 해야 하는 추가 구성에 대 한 명확한 추가 비용이 없습니다.In the latter case, there is no obvious additional cost apart from the extra configuration you have to make on Event Processor Host.

파티션은 식별 가능하고 직접 보낼 수 있지만 파티션으로 직접 보내는 방법은 권장하지 않습니다.While partitions are identifiable and can be sent to directly, sending directly to a partition is not recommended. 대신 이벤트 게시자 섹션에서 도입 된 더 높은 수준의 구문을 사용할 수 있습니다.Instead, you can use higher level constructs introduced in the Event publishers section.

파티션은 이벤트 본문, 사용자 정의 속성 모음 및 파티션의 오프셋과 스트림 시퀀스의 번호와 같은 메타데이터를 포함하는 이벤트 데이터 시퀀스로 채워집니다.Partitions are filled with a sequence of event data that contains the body of the event, a user-defined property bag, and metadata such as its offset in the partition and its number in the stream sequence.

최적의 규모를 얻기 위해 1:1 처리량 단위와 파티션 간에 균형을 유지 하는 것이 좋습니다.We recommend that you balance 1:1 throughput units and partitions to achieve optimal scale. 단일 파티션에는 최대 하나의 처리량 단위에 대 한 수신 및 송신이 보장 됩니다.A single partition has a guaranteed ingress and egress of up to one throughput unit. 파티션에서 처리량을 높일 수는 있지만 성능이 보장 되지는 않습니다.While you may be able to achieve higher throughput on a partition, performance is not guaranteed. 따라서 이벤트 허브의 파티션 수는 처리량 단위 수보다 크거나 같은 것이 좋습니다.This is why we strongly recommend that the number of partitions in an event hub be greater than or equal to the number of throughput units.

필요한 총 처리량을 고려 하 여 필요한 처리량 단위 수와 최소 파티션 수를 알고 있어야 하는 파티션 수는 얼마 인가요?Given the total throughput you plan on needing, you know the number of throughput units you require and the minimum number of partitions, but how many partitions should you have? 원하는 다운스트림 병렬 처리와 향후 처리량 요구 사항에 따라 파티션 수를 선택 합니다.Choose number of partitions based on the downstream parallelism you want to achieve as well as your future throughput needs. 이벤트 허브 내에 있는 파티션 수에는 요금이 부과 되지 않습니다.There is no charge for the number of partitions you have within an Event Hub.

파티션 및 가용성과 안정성 간의 균형에 대한 자세한 내용은 Event Hubs 프로그래밍 가이드Event Hubs의 가용성 및 일관성 문서를 참조하세요.For more information about partitions and the trade-off between availability and reliability, see the Event Hubs programming guide and the Availability and consistency in Event Hubs article.

SAS 토큰SAS tokens

Event Hubs는 네임스페이스 및 Event Hubs 수준에서 사용할 수 있는 공유 액세스 서명을 사용합니다.Event Hubs uses Shared Access Signatures, which are available at the namespace and event hub level. SAS 토큰은 SAS 키에서 생성되고 특정 형식으로 인코딩된 URL의 SHA 해시입니다.A SAS token is generated from a SAS key and is an SHA hash of a URL, encoded in a specific format. 키(정책)와 토큰의 이름을 사용하는 경우 Event Hubs는 해시를 다시 생성하여 발신자를 인증할 수 있습니다.Using the name of the key (policy) and the token, Event Hubs can regenerate the hash and thus authenticate the sender. 일반적으로 이벤트 게시자에 대한 SAS 토큰은 특정 Event Hub에 대한 전송 권한만으로 작성됩니다.Normally, SAS tokens for event publishers are created with only send privileges on a specific event hub. 이 SAS 토큰 URL 메커니즘은 게시자 정책에 도입된 게시자 ID에 대한 기반이 됩니다.This SAS token URL mechanism is the basis for publisher identification introduced in the publisher policy. SAS 작업에 대한 자세한 내용은 Service Bus를 사용한 공유 액세스 서명 인증을 참조하세요.For more information about working with SAS, see Shared Access Signature Authentication with Service Bus.

이벤트 소비자Event consumers

Event Hubs에서 이벤트 데이터를 읽는 모든 엔터티는 이벤트 소비자입니다.Any entity that reads event data from an event hub is an event consumer. 모든 Event Hubs 소비자는 AMQP 1.0 세션을 통해 연결되며, 사용 가능한 상태가 되면 이 세션을 통해 이벤트가 전달됩니다.All Event Hubs consumers connect via the AMQP 1.0 session and events are delivered through the session as they become available. 클라이언트는 데이터 가용성에 대해 폴링할 필요가 없습니다.The client does not need to poll for data availability.

소비자 그룹Consumer groups

Event Hubs의 게시/구독 메커니즘은 소비자 그룹을 통해 사용할 수 있습니다.The publish/subscribe mechanism of Event Hubs is enabled through consumer groups. 소비자 그룹은 전체 Event Hub의 보기(상태, 위치, 또는 오프셋)입니다.A consumer group is a view (state, position, or offset) of an entire event hub. 소비자 그룹은 여러 소비 애플리케이션을 사용하여 이벤트 스트림의 별도 보기가 있으며 자신의 속도 및 자신의 오프셋으로 독립적으로 스트림을 읽을 수 있습니다.Consumer groups enable multiple consuming applications to each have a separate view of the event stream, and to read the stream independently at their own pace and with their own offsets.

스트림 처리 아키텍처에서 각 다운스트림 애플리케이션은 소비자 그룹에 해당합니다.In a stream processing architecture, each downstream application equates to a consumer group. 이벤트 데이터를 장기 스토리지에 기록하려는 경우, 해당 스토리지 기록기 애플리케이션은 소비자 그룹입니다.If you want to write event data to long-term storage, then that storage writer application is a consumer group. 복합 이벤트 처리는 별도의 다른 소비자 그룹에서 수행될 수 있습니다.Complex event processing can then be performed by another, separate consumer group. 소비자 그룹을 통해서만 파티션을 액세스할 수 있습니다.You can only access partitions through a consumer group. Event Hub에는 항상 기본 소비자 그룹이 있으며 표준 계층 Event Hub에 대해 최대 20개의 소비자 그룹을 만들 수 있습니다.There is always a default consumer group in an event hub, and you can create up to 20 consumer groups for a Standard tier event hub.

소비자 그룹당 파티션에는 최대 5개의 동시 판독기가 있을 수 있습니다. 하지만 소비자 그룹당 파티션에는 활성 수신기를 하나만 포함하는 것이 좋습니다.There can be at most 5 concurrent readers on a partition per consumer group; however it is recommended that there is only one active receiver on a partition per consumer group. 각 판독기는 단일 파티션 내에서 모든 메시지를 받습니다.Within a single partition, each reader receives all of the messages. 동일한 파티션에 여러 판독기가 있는 경우 중복 메시지를 처리합니다.If you have multiple readers on the same partition, then you process duplicate messages. 사소하지 않을 수도 있는 이 문제는 코드에서 처리해야 합니다.You need to handle this in your code, which may not be trivial. 그러나 일부 시나리오에서는 유효한 방법입니다.However, it's a valid approach in some scenarios.

다음은 소비자 그룹 URI 규칙의 예입니다.The following are examples of the consumer group URI convention:

//[my namespace].servicebus.windows.net/[event hub name]/[Consumer Group #1]
//[my namespace].servicebus.windows.net/[event hub name]/[Consumer Group #2]

다음 그림에서는 아키텍처를 처리하는 Event Hubs 스트림을 보여 줍니다.The following figure shows the Event Hubs stream processing architecture:

Event Hubs

스트림 오프셋Stream offsets

오프셋은 파티션 내의 이벤트 위치입니다.An offset is the position of an event within a partition. 오프셋을 클라이언트 쪽 커서로 생각할 수 있습니다.You can think of an offset as a client-side cursor. 오프셋은 이벤트의 바이트 번호입니다.The offset is a byte numbering of the event. 오프셋을 사용하여 이벤트 소비자(판독기)가 이벤트를 읽기 시작할 이벤트 스트림의 위치를 지정할 수 있습니다.This offset enables an event consumer (reader) to specify a point in the event stream from which they want to begin reading events. 타임스탬프 또는 오프셋 값으로 오프셋을 지정할 수 있습니다.You can specify the offset as a timestamp or as an offset value. 소비자는 Event Hubs 서비스 외부에 자신의 오프셋 값을 저장하는 일을 담당합니다.Consumers are responsible for storing their own offset values outside of the Event Hubs service. 파티션 내에서 각 이벤트는 오프셋을 포함합니다.Within a partition, each event includes an offset.

Event Hubs

검사점 설정Checkpointing

검사점 은 판독기가 파티션 이벤트 시퀀스 내에서 위치를 표시하거나 커밋하는 프로세스입니다.Checkpointing is a process by which readers mark or commit their position within a partition event sequence. 검사점은 소비자의 책임으로 소비자 그룹 내에서 파티션별로 발생합니다.Checkpointing is the responsibility of the consumer and occurs on a per-partition basis within a consumer group. 이러한 책임은 각 소비자 그룹에 대해 각 파티션 판독기는 이벤트 스트림의 현재 위치를 추적해야 하며 데이터 스트림이 완료된 것으로 간주되면 서비스를 알릴 수 있다는 것을 의미합니다.This responsibility means that for each consumer group, each partition reader must keep track of its current position in the event stream, and can inform the service when it considers the data stream complete.

판독기가 파티션에서 연결을 끊은 경우 다시 연결하면 해당 소비자 그룹에서 해당 파티션의 마지막 판독기에서 이전에 제출한 검사점에서 읽기 시작합니다.If a reader disconnects from a partition, when it reconnects it begins reading at the checkpoint that was previously submitted by the last reader of that partition in that consumer group. 판독기가 연결하면, 오프셋을 이벤트 허브로 전달하여 읽기 시작할 위치를 지정합니다.When the reader connects, it passes the offset to the event hub to specify the location at which to start reading. 이러한 방식으로, 서로 다른 머신에서 실행되는 판독기 간의 장애 조치(failover)가 발생하는 경우 복원력을 제공하고 다운스트림 애플리케이션에서 이벤트를 "완료"로 표시하는 데 검사점을 사용할 수 있습니다.In this way, you can use checkpointing to both mark events as "complete" by downstream applications, and to provide resiliency if a failover between readers running on different machines occurs. 이 검사점 프로세스에서 더 낮은 오프셋을 지정하면 이전 데이터로 돌아갈 수 있습니다.It is possible to return to older data by specifying a lower offset from this checkpointing process. 이 메커니즘을 통해 검사점을 지정하면 장애 조치 복원력 및 제어된 이벤트 스트림 재생 모두를 사용할 수 있습니다.Through this mechanism, checkpointing enables both failover resiliency and event stream replay.

일반 소비자 작업Common consumer tasks

모든 Event Hubs 소비자는 상태 인식 양방향 통신 채널인 AMQP 1.0 세션을 통해 연결됩니다.All Event Hubs consumers connect via an AMQP 1.0 session, a state-aware bidirectional communication channel. 각 파티션에는 AMQP 1.0 세션이 있어 파티션별로 분리된 이벤트를 쉽게 전송할 수 있습니다.Each partition has an AMQP 1.0 session that facilitates the transport of events segregated by partition.

파티션에 연결Connect to a partition

파티션에 연결할 때 일반적으로 임대 메커니즘을 사용하여 판독기 연결을 특정 파티션으로 조정합니다.When connecting to partitions, it is common practice to use a leasing mechanism to coordinate reader connections to specific partitions. 이러한 방식으로, 소비자 그룹의 모든 파티션에 활성 판독기가 하나만 있을 수 있습니다.This way, it is possible for every partition in a consumer group to have only one active reader. .NET 클라이언트의 EventProcessorHost 클래스를 사용하면 판독기의 검사점 지정, 임대 및 관리가 간편해집니다.Checkpointing, leasing, and managing readers are simplified by using the EventProcessorHost class for .NET clients. 이벤트 프로세서 호스트는 지능형 소비자 에이전트입니다.The Event Processor Host is an intelligent consumer agent.

읽기 이벤트Read events

AMQP 1.0 세션 및 링크는 특정 파티션에 대해 열린 후, 이벤트는 이벤트 허브 서비스에서 AMQP 1.0 클라이언트로 전달됩니다.After an AMQP 1.0 session and link is opened for a specific partition, events are delivered to the AMQP 1.0 client by the Event Hubs service. 이 배달 메커니즘은 HTTP GET과 같은 풀 기반 메커니즘보다 더 낮은 대기 시간 및 더 높은 처리량을 사용합니다.This delivery mechanism enables higher throughput and lower latency than pull-based mechanisms such as HTTP GET. 이벤트가 클라이언트에 전송되므로, 각 이벤트 데이터 인스턴스는 이벤트 시퀀스에서 검사점을 용이하게 하는데 사용되는 오프셋 및 시퀀스 번호와 같은 중요한 메타데이터를 포함합니다.As events are sent to the client, each event data instance contains important metadata such as the offset and sequence number that are used to facilitate checkpointing on the event sequence.

이벤트 데이터:Event data:

  • OffsetOffset
  • 시퀀스 번호Sequence number
  • 본문Body
  • 사용자 속성User properties
  • 시스템 속성System properties

사용자의 책임 하에 오프셋을 관리해야 합니다.It is your responsibility to manage the offset.

다음 단계Next steps

Event Hubs에 대한 자세한 내용은 다음 링크를 방문하세요.For more information about Event Hubs, visit the following links: