Features und Terminologie in Azure Event HubsFeatures and terminology in Azure Event Hubs

Azure Event Hubs ist ein skalierbarer Ereignisverarbeitungsdienst, der große Mengen von Ereignissen und Daten mit kurzer Wartezeit und hoher Zuverlässigkeit erfasst und verarbeitet.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. Unter Was ist Event Hubs? finden Sie einen allgemeinen Überblick.See What is Event Hubs? for a high-level overview.

Dieser Artikel setzt auf den Informationen in der Übersichtsartikel auf und bietet technische und Implementierungsdetails zu Event Hubs-Komponenten und -Features.This article builds on the information in the overview article, and provides technical and implementation details about Event Hubs components and features.

NamespaceNamespace

Ein Event Hubs-Namespace stellt einen eindeutigen Bereichscontainer bereit, auf den über den vollqualifizierten Domänennamen verwiesen wird, und in dem Sie mindestens einen Event Hub bzw. mindestens ein Kafka-Thema erstellen.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.

Event Hubs für Apache KafkaEvent Hubs for Apache Kafka

Dieses Feature stellt einen Endpunkt bereit, der Kunden die Kommunikation mit Event Hubs über das Kafka-Protokoll ermöglicht.This feature provides an endpoint that enables customers to talk to Event Hubs using the Kafka protocol. Mit dieser Integration verfügen Kunden über einen Kafka-Endpunkt.This integration provides customers a Kafka endpoint. Dadurch können Kunden ihre vorhandenen Kafka-Anwendungen so konfigurieren, dass die Kommunikation mit Event Hubs ermöglicht wird. Dies stellt eine Alternative zum Ausführen ihrer eigenen Kafka-Cluster dar.This enables customers to configure their existing Kafka applications to talk to Event Hubs, giving an alternative to running their own Kafka clusters. Event Hubs für Apache Kafka unterstützt das Kafka-Protokoll 1.0 und höher.Event Hubs for Apache Kafka supports Kafka protocol 1.0 and later.

Mit dieser Integration ist es nicht erforderlich, dass Sie Kafka-Cluster ausführen oder mit ZooKeeper verwalten.With this integration, you don't need to run Kafka clusters or manage them with Zookeeper. So können Sie auch einige der anspruchsvollsten Features von Event Hubs verwenden, z.B. Capture, automatische Vergrößerung und georedundante Notfallwiederherstellung.This also allows you to work with some of the most demanding features of Event Hubs like Capture, Auto-inflate, and Geo-disaster Recovery.

Außerdem können durch diese Integration Anwendungen wie Mirror Maker oder Frameworks wie Kafka Connect nur durch Konfigurationsänderungen ohne Cluster verwendet werden.This integration also allows applications like Mirror Maker or framework like Kafka Connect to work clusterless with just configuration changes.

EreignisherausgeberEvent publishers

Jede Entität, die Daten an einen Event Hub sendet, ist ein Ereigniserzeuger bzw. Ereignisherausgeber.Any entity that sends data to an event hub is an event producer, or event publisher. Ereignisherausgeber können Ereignisse über HTTPS, AMQP 1.0 oder Kafka 1.0 und höher veröffentlichen.Event publishers can publish events using HTTPS or AMQP 1.0 or Kafka 1.0 and later. Ereignisherausgeber identifizieren sich mit einem SAS-Token (Shared Access Signature) bei einem Event Hub und können eine eindeutige Identität aufweisen oder ein gemeinsames SAS-Token verwenden.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.

Veröffentlichen eines EreignissesPublishing an event

Sie können ein Ereignis über AMQP 1.0, Kafka 1.0 (und höher) oder HTTPS veröffentlichen.You can publish an event via AMQP 1.0, Kafka 1.0 (and later), or HTTPS. Event Hubs stellt Clientbibliotheken und Klassen zum Veröffentlichen von Ereignissen für einen Event Hub von .NET-Clients bereit.Event Hubs provides client libraries and classes for publishing events to an event hub from .NET clients. Für andere Runtimes und Plattformen können beliebige AMQP 1.0-Clients verwendet werden, z.B. Apache Qpid.For other runtimes and platforms, you can use any AMQP 1.0 client, such as Apache Qpid. Sie können Ereignisse einzeln oder als Batch veröffentlichen.You can publish events individually, or batched. Jede Veröffentlichung (Ereignisdateninstanz) ist auf 1 MB beschränkt, unabhängig davon, ob es sich um ein einzelnes Ereignis oder einen Batch handelt.A single publication (event data instance) has a limit of 1 MB, regardless of whether it is a single event or a batch. Das Veröffentlichen von Ereignissen, die größer als dieser Schwellenwert sind, führt zu einem Fehler.Publishing events larger than this threshold results in an error. Es ist eine bewährte Methode für Herausgeber, die Partitionen innerhalb des Event Hubs nicht zu beachten und nur einen Partitionsschlüssel (im nächsten Abschnitt beschrieben) oder die eigene Identität über das SAS-Token anzugeben.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.

Die Wahl zwischen AMQP oder HTTPS ist auf das Verwendungsszenario bezogen.The choice to use AMQP or HTTPS is specific to the usage scenario. AMQP erfordert die Einrichtung eines persistenten bidirektionalen Sockets zusätzlich zu TLS (Transport Level Security) oder SSL/TLS.AMQP requires the establishment of a persistent bidirectional socket in addition to transport level security (TLS) or SSL/TLS. AMQP weist höhere Netzwerkkosten beim Initialisieren der Sitzung auf, HTTPS erfordert jedoch zusätzlichen SSL-Mehraufwand für jede Anfrage.AMQP has higher network costs when initializing the session, however HTTPS requires additional SSL overhead for every request. AMQP verfügt über eine höhere Leistung für häufige Herausgeber.AMQP has higher performance for frequent publishers.

Event Hubs

Event Hubs stellt sicher, dass alle Ereignisse mit dem gleichen Partitionsschlüsselwert in der richtigen Reihenfolge und an die gleiche Partition übermittelt werden.Event Hubs ensures that all events sharing a partition key value are delivered in order, and to the same partition. Wenn Partitionsschlüssel mit Herausgeberrichtlinien verwendet werden, müssen die Identität des Herausgebers und der Wert des Partitionsschlüssels übereinstimmen.If partition keys are used with publisher policies, then the identity of the publisher and the value of the partition key must match. Andernfalls tritt ein Fehler auf.Otherwise, an error occurs.

HerausgeberrichtliniePublisher policy

Event Hubs ermöglicht eine differenzierte Kontrolle über Ereignisherausgeber durch Herausgeberrichtlinien.Event Hubs enables granular control over event publishers through publisher policies. Herausgeberrichtlinien sind Laufzeitfunktionen, mit denen große Mengen unabhängiger Herausgeber verwaltet werden können.Publisher policies are run-time features designed to facilitate large numbers of independent event publishers. Mit Herausgeberrichtlinien verwendet jeder Herausgeber einen eigenen eindeutigen Bezeichner für die Veröffentlichung von Ereignissen in einem Event Hub. Dabei kommt der folgende Mechanismus zum Einsatz: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]

Sie müssen Herausgebernamen nicht im Voraus erstellen, jedoch müssen diese mit dem SAS-Token übereinstimmen, das beim Veröffentlichen eines Ereignisses verwendet wird, um die Identitäten unabhängiger Herausgeber sicherzustellen.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. Bei Verwendung von Herausgeberrichtlinien wird der Wert PartitionKey auf den Herausgebernamen festgelegt.When using publisher policies, the PartitionKey value is set to the publisher name. Diese Werte müssen übereinstimmen, damit alles ordnungsgemäß funktioniert.To work properly, these values must match.

ErfassenCapture

Mit Event Hubs Capture lassen sich die Streamingdaten automatisch in Event Hubs aufzeichnen und in einem Blob Storage-Konto oder einem Azure Data Lake-Dienstkonto speichern.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. Sie können Event Hubs Capture im Azure-Portal aktivieren und eine Mindestgröße sowie ein Mindestzeitfenster für die Aufzeichnung angeben.You can enable Capture from the Azure portal, and specify a minimum size and time window to perform the capture. Mit Event Hubs Capture legen Sie ein eigenes Azure Blob Storage-Konto und einen Container bzw. ein Azure Data Lake-Dienstkonto fest, wovon eines zum Speichern der aufgezeichneten Daten verwendet wird.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. Die aufgezeichneten Daten werden im Apache Avro-Format geschrieben.Captured data is written in the Apache Avro format.

PartitionenPartitions

Event Hubs bietet Nachrichtenstreaming über ein partitioniertes Consumermuster, in dem jeder Consumer nur eine bestimmte Teilmenge oder Partition des Nachrichtenstreams liest.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. Dieses Muster ermöglicht eine horizontale Skalierung für die Ereignisverarbeitung und bietet andere datenstrombezogene Features, die in Warteschlangen und Themen nicht verfügbar sind.This pattern enables horizontal scale for event processing and provides other stream-focused features that are unavailable in queues and topics.

Eine Partition ist eine geordnete Sequenz von Ereignissen, die in einem Event Hub besteht.A partition is an ordered sequence of events that is held in an event hub. Neu eingehende Ereignisse werden am Ende dieser Sequenz hinzugefügt.As newer events arrive, they are added to the end of this sequence. Eine Partition kann als "Commitprotokoll" betrachtet werdenA partition can be thought of as a "commit log."

Event Hubs

Event Hubs bewahrt Daten über einen konfigurierten Aufbewahrungszeitraum auf, der für alle Partitionen im Event Hub gilt.Event Hubs retains data for a configured retention time that applies across all partitions in the event hub. Ereignisse laufen nach Zeit ab. Sie können nicht direkt gelöscht werden.Events expire on a time basis; you cannot explicitly delete them. Da Partitionen unabhängig sind und ihre eigene Datensequenz enthalten, wachsen sie häufig mit unterschiedlicher Geschwindigkeit.Because partitions are independent and contain their own sequence of data, they often grow at different rates.

Event Hubs

Die Anzahl der Partitionen wird bei der Erstellung angegeben und muss zwischen zwei und 32 liegen.The number of partitions is specified at creation and must be between 2 and 32. Die Partitionenanzahl kann nicht geändert werden. Behalten Sie daher beim Festlegen der Partitionenanzahl die langfristige Skalierung im Hinterkopf.The partition count is not changeable, so you should consider long-term scale when setting partition count. Partitionen sind ein Mechanismus zum Organisieren von Daten, der sich auf die erforderliche Downstreamparallelität in verarbeitenden Anwendungen bezieht.Partitions are a data organization mechanism that relates to the downstream parallelism required in consuming applications. Die Anzahl der Partitionen in einem Event Hub steht in direktem Zusammenhang mit der erwarteten Anzahl von gleichzeitigen Lesern.The number of partitions in an event hub directly relates to the number of concurrent readers you expect to have. Sie können die Anzahl der Partitionen auf mehr als 32 erhöhen, wenn Sie das Event Hubs-Team kontaktieren.You can increase the number of partitions beyond 32 by contacting the Event Hubs team.

Es empfiehlt sich ggf., zum Zeitpunkt der Erstellung den höchstmöglichen Wert (32) festzulegen.You may want to set it to be the highest possible value, which is 32, at the time of creation. Beachten Sie, dass bei Verwendung mehrerer Partitionen Ereignisse ohne Berücksichtigung der Reihenfolge an mehrere Partitionen gesendet werden – es sei denn, Sie konfigurieren die Absender so, dass sie Ereignisse nur an eine einzelne der 32 Partitionen senden und die anderen 31 Partitionen redundant sind.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. Im ersten Fall müssen Ereignisse für alle 32 Partitionen gelesen werden.In the former case, you will have to read events across all 32 partitions. Im zweiten Fall sind mit Ausnahme der zusätzlichen Konfiguration für den Ereignisprozessorhost keine offensichtlichen Zusatzschritte erforderlich.In the latter case, there is no obvious additional cost apart from the extra configuration you have to make on Event Processor Host.

Auch wenn Partitionen identifizierbar sind und Daten direkt an sie gesendet werden können, wird dies nicht empfohlen.While partitions are identifiable and can be sent to directly, sending directly to a partition is not recommended. Stattdessen können Sie Konstrukte höherer Ebene verwenden, die im Abschnitt Ereignisherausgeber erläutert werden.Instead, you can use higher level constructs introduced in the Event publishers section.

Partitionen werden mit einer Sequenz von Ereignisdaten gefüllt, die den Hauptteil des Ereignisses, einen benutzerdefinierten Eigenschaftenbehälter und Metadaten (z.B. Offset in der Partition und Nummer in der Streamsequenz) enthalten.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.

Es wird empfohlen, Durchsatzeinheiten und Partitionen 1:1 aufeinander abzustimmen, um eine optimale Skalierung zu erreichen.We recommend that you balance 1:1 throughput units and partitions to achieve optimal scale. Eine einzelne Partition weist einen garantierten Ein- und Ausgang von bis zu einer Durchsatzeinheit auf.A single partition has a guaranteed ingress and egress of up to one throughput unit. Sie können zwar einen höheren Durchsatz auf einer Partition erzielen, aber die Leistung ist nicht garantiert.While you may be able to achieve higher throughput on a partition, performance is not guaranteed. Aus diesem Grund wird dringend empfohlen, dass die Anzahl der Partitionen in einem Event Hub größer oder gleich der Anzahl der Durchsatzeinheiten ist.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.

Angesichts des Gesamtdurchsatzes, den Sie planen zu benötigen, kennen Sie die Anzahl der benötigten Durchsatzeinheiten und die minimale Anzahl der Partitionen, aber wie viele Partitionen sollten Sie verwenden?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? Wählen Sie die Anzahl der Partitionen basierend auf der zu erreichenden Downstreamparallelität und Ihren zukünftigen Durchsatzanforderungen.Choose number of partitions based on the downstream parallelism you want to achieve as well as your future throughput needs. Für die Anzahl der Partitionen, die Sie innerhalb eines Event Hubs verwenden, fällt keine Gebühr an.There is no charge for the number of partitions you have within an Event Hub.

Weitere Informationen zu Partitionen sowie zur Abwägung von Verfügbarkeit gegen Zuverlässigkeit finden Sie im Programmierleitfaden für Event Hubs sowie im Artikel Verfügbarkeit und Konsistenz in 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-TokenSAS tokens

Event Hubs verwendet Shared Access Signatures, die auf Namespace- und Event Hub-Ebene verfügbar sind.Event Hubs uses Shared Access Signatures, which are available at the namespace and event hub level. Ein SAS-Token wird aus einem SAS-Schlüssel generiert und ist ein SHA-Hash einer URL, der in einem bestimmten Format codiert ist.A SAS token is generated from a SAS key and is an SHA hash of a URL, encoded in a specific format. Mit dem Namen des Schlüssels (Richtlinie) und dem Token kann Event Hubs den Hash erneut generieren und somit den Absender authentifizieren.Using the name of the key (policy) and the token, Event Hubs can regenerate the hash and thus authenticate the sender. In der Regel werden SAS-Token für Ereignisherausgeber nur mit Senden-Berechtigung für einen bestimmten Event Hub erstellt.Normally, SAS tokens for event publishers are created with only send privileges on a specific event hub. Dieser SAS-Token-URL-Mechanismus bildet die Grundlage für die Herausgeberidentifizierung, die in der Herausgeberrichtlinie eingeführt wurde.This SAS token URL mechanism is the basis for publisher identification introduced in the publisher policy. Weitere Informationen zur Verwendung von SAS finden Sie unter SAS-Authentifizierung (Shared Access Signature) mit Service Bus.For more information about working with SAS, see Shared Access Signature Authentication with Service Bus.

EreignisconsumerEvent consumers

Eine Entität, die Ereignisdaten von einem Event Hub liest, ist ein Ereignisconsumer.Any entity that reads event data from an event hub is an event consumer. Alle Event Hubs-Consumer stellen über eine AMQP 1.0-Sitzung eine Verbindung her und Ereignisse werden über die Sitzung übermittelt, sobald sie verfügbar sind.All Event Hubs consumers connect via the AMQP 1.0 session and events are delivered through the session as they become available. Der Client muss die Verfügbarkeit der Daten nicht abfragen.The client does not need to poll for data availability.

VerbrauchergruppenConsumer groups

Der Veröffentlichen-/Abonnieren-Mechanismus von Event Hubs erfolgt durch Consumergruppen.The publish/subscribe mechanism of Event Hubs is enabled through consumer groups. Eine Consumergruppe ist eine Ansicht (Status, Position oder Offset) des gesamten Event Hubs.A consumer group is a view (state, position, or offset) of an entire event hub. Mithilfe von Consumergruppen können mehrere verarbeitende Anwendungen jeweils eine separate Ansicht des Ereignisstreams aufweisen und den Stream unabhängig voneinander in einem unabhängigen Tempo und mit eigenen Offsets lesen.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 einer Streamverarbeitungsarchitektur entspricht jede Downstreamanwendung einer Consumergruppe.In a stream processing architecture, each downstream application equates to a consumer group. Wenn Sie Ereignisdaten in den langfristigen Speicher schreiben möchten, ist die entsprechende Speicherschreibanwendung eine Consumergruppe.If you want to write event data to long-term storage, then that storage writer application is a consumer group. Komplexe Ereignisverarbeitung kann von einer anderen separaten Consumergruppe ausgeführt werden.Complex event processing can then be performed by another, separate consumer group. Sie können auf Partitionen nur über eine Consumergruppe zugreifen.You can only access partitions through a consumer group. In einem Event Hub gibt es immer eine Standardconsumergruppe, und Sie können bis zu 20 Consumergruppen für einen Event Hub auf Standardebene erstellen.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.

Pro Consumergruppe sind maximal 5 gleichzeitige Leser in einer Partition zulässig. Jedoch wird nur ein aktiver Empfänger in einer Partition pro Consumergruppe empfohlen.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. Innerhalb einer einzelnen Partition erhält jeder Leser alle Nachrichten.Within a single partition, each reader receives all of the messages. Wenn Sie für die gleiche Partition über mehrere Leser verfügen, verarbeiten Sie doppelte Nachrichten.If you have multiple readers on the same partition, then you process duplicate messages. Sie müssen dies in Ihrem Code berücksichtigen, was möglicherweise nicht trivial ist.You need to handle this in your code, which may not be trivial. In einigen Szenarien ist dies jedoch ein gültiger Ansatz.However, it's a valid approach in some scenarios.

Es folgen Beispiele für die URI-Konvention für Consumergruppen: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]

Die folgende Abbildung zeigt die Streamverarbeitungsarchitektur von Event Hubs:The following figure shows the Event Hubs stream processing architecture:

Event Hubs

StreamoffsetsStream offsets

Ein Offset ist die Position eines Ereignisses innerhalb einer Partition.An offset is the position of an event within a partition. Sie können sich einen Offset als einen clientseitigen Zeiger vorstellen.You can think of an offset as a client-side cursor. Der Offset ist eine Nummerierung des Ereignisses in Byte.The offset is a byte numbering of the event. Dieser Offset ermöglicht es Ereignisconsumern (Lesern), einen Punkt im Ereignisstream anzugeben, ab dem Ereignisse gelesen werden sollen.This offset enables an event consumer (reader) to specify a point in the event stream from which they want to begin reading events. Sie können den Offset als Zeitstempel oder als Offsetwert angeben.You can specify the offset as a timestamp or as an offset value. Es liegt in der Verantwortung jedes Consumers, seine eigenen Offsetwerte außerhalb des Event Hubs-Diensts zu speichern.Consumers are responsible for storing their own offset values outside of the Event Hubs service. Innerhalb einer Partition enthält jedes Ereignis einen Offset.Within a partition, each event includes an offset.

Event Hubs

Setzen von PrüfpunktenCheckpointing

Setzen von Prüfpunkten ist ein Vorgang, bei dem Leser ihre Position innerhalb einer Partitionsereignissequenz markieren oder bestätigen.Checkpointing is a process by which readers mark or commit their position within a partition event sequence. Dies liegt in der Verantwortung des Consumers und erfolgt auf Partitionsbasis innerhalb einer Consumergruppe.Checkpointing is the responsibility of the consumer and occurs on a per-partition basis within a consumer group. Das bedeutet, dass jeder Partitionsleser für jede Consumergruppe seine aktuelle Position im Ereignisstream nachverfolgen muss und den Dienst informieren kann, wenn er den Datenstrom als abgeschlossen betrachtet.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.

Wenn ein Leser die Verbindung zu eine Partition trennt, beginnt nach dem erneuten Herstellen der Verbindung das Lesen bei dem Prüfpunkt, der zuvor durch den letzten Leser dieser Partition in dieser Consumergruppe übermittelt wurde.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. Wenn der Leser verbunden ist, übergibt er diesen Offset an den Event Hub, um die Position für den nächsten Lesevorgang anzugeben.When the reader connects, it passes the offset to the event hub to specify the location at which to start reading. Auf diese Weise können mithilfe von Prüfpunkten Ereignisse von Downstreamanwendungen als abgeschlossen markiert werden. Darüber hinaus sorgen Prüfpunkte für Resilienz bei einem Failover zwischen Lesern, die auf unterschiedlichen Computern ausgeführt werden.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. Sie können ältere Daten zurückgeben, indem Sie einen niedrigeren Offset aus diesem Prüfpunktprozess angeben.It is possible to return to older data by specifying a lower offset from this checkpointing process. Durch diesen Mechanismus ermöglicht das Setzen von Prüfpunkten Failoverstabilität und eine erneute Wiedergabe des Ereignisstreams.Through this mechanism, checkpointing enables both failover resiliency and event stream replay.

Allgemeine ConsumeraufgabenCommon consumer tasks

Alle Event Hubs-Consumer stellen eine Verbindung über eine AMQP 1.0-Sitzung (statusaktivierter bidirektionaler Kommunikationskanal) her.All Event Hubs consumers connect via an AMQP 1.0 session, a state-aware bidirectional communication channel. Jede Partition weist eine AMQP 1.0-Sitzung auf, die den Transport von Ereignissen nach Partition getrennt ermöglicht.Each partition has an AMQP 1.0 session that facilitates the transport of events segregated by partition.

Herstellen einer Verbindung mit einer PartitionConnect to a partition

Bei Verbindungen erfolgt die Koordination von Leserverbindungen und Partitionen oft mithilfe eines Leasingmechanismus.When connecting to partitions, it is common practice to use a leasing mechanism to coordinate reader connections to specific partitions. Auf diese Weise ist es möglich, dass jede Partition in einer Consumergruppe nur über einen aktive Leser verfügt.This way, it is possible for every partition in a consumer group to have only one active reader. Das Setzen von Prüfpunkten, das Leasen und das Verwalten von Lesern werden durch Nutzung der EventProcessorHost-Klasse für .NET-Clients vereinfacht.Checkpointing, leasing, and managing readers are simplified by using the EventProcessorHost class for .NET clients. Der Ereignisprozessorhost ist ein intelligenter Consumer-Agent.The Event Processor Host is an intelligent consumer agent.

Lesen von EreignissenRead events

Nachdem eine AMQP 1.0-Sitzung und ein Link für eine bestimmte Partition geöffnet wurde, werden Ereignisse vom Event Hubs-Dienst an den AMQP 1.0-Client übergeben.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. Dieser Mechanismus ermöglicht einen höheren Durchsatz und eine niedrigere Latenz als Pull-basierte Mechanismen wie z. B. HTTP GET.This delivery mechanism enables higher throughput and lower latency than pull-based mechanisms such as HTTP GET. Wenn Ereignisse an den Client gesendet werden, enthält jede Ereignisdateninstanz wichtige Metadaten wie z. B. den Offset und die Sequenznummer, die zur Vereinfachung des Setzens von Prüfpunkten in der Ereignissequenz verwendet werden.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.

Ereignisdaten:Event data:

  • OffsetOffset
  • SequenznummerSequence number
  • BodyBody
  • BenutzereigenschaftenUser properties
  • SystemeigenschaftenSystem properties

Die Verwaltung des Offsets liegt in Ihrer Verantwortung.It is your responsibility to manage the offset.

Nächste SchritteNext steps

Weitere Informationen zu Event Hubs erhalten Sie unter den folgenden Links:For more information about Event Hubs, visit the following links: