Azure Event Hubs Clientbibliothek für .NET– Version 5.9.3
Azure Event Hubs ist ein hochgradig skalierbarer Veröffentlichungs-/Abonnementdienst, der Millionen von Ereignissen pro Sekunde erfassen und an mehrere Consumer streamen kann. Auf diese Weise können Sie die riesigen Datenmengen verarbeiten und analysieren, die von Ihren verbundenen Geräten und Anwendungen erzeugt werden. Nachdem Event Hubs die Daten gesammelt hat, können Sie sie mithilfe eines beliebigen Echtzeitanalyseanbieters oder mit Batch-/Speicheradaptern abrufen, transformieren und speichern. Wenn Sie mehr über Azure Event Hubs erfahren möchten, lesen Sie unter Was ist Event Hubs?
Die Azure Event Hubs-Clientbibliothek ermöglicht die Veröffentlichung und Nutzung von Azure Event Hubs-Ereignissen und kann für Folgendes verwendet werden:
Geben Sie Telemetriedaten zu Ihrer Anwendung für Business Intelligence- und Diagnose-Zwecke aus.
Veröffentlichen Sie Fakten zum Status Ihrer Anwendung, die von interessierten Parteien beobachtet und als Auslöser für die Ausführung von Aktionen verwendet werden können.
Beobachten Sie interessante Vorgänge und Interaktionen innerhalb Ihres Unternehmens oder anderen Ökosystems, sodass lose gekoppelte Systeme interagieren können, ohne sie miteinander verbinden zu müssen.
Empfangen Sie Ereignisse von einem oder mehreren Herausgebern, transformieren Sie sie, um die Anforderungen Ihres Ökosystems besser zu erfüllen, und veröffentlichen Sie die transformierten Ereignisse dann in einem neuen Stream, den Consumer beobachten können.
Quellcode | Paket (NuGet) | API-Referenzdokumentation | Produktdokumentation | Migrationshandbuch | Leitfaden zur Problembehandlung
Erste Schritte
Voraussetzungen
Azure-Abonnement: Für die Verwendung von Azure-Diensten, einschließlich Azure Event Hubs, benötigen Sie ein Abonnement. Wenn Sie nicht über ein vorhandenes Azure-Konto verfügen, können Sie sich für eine kostenlose Testversion registrieren oder Ihre Visual Studio-Abonnementvorteile nutzen, wenn Sie ein Konto erstellen.
Event Hubs-Namespace mit einem Event Hub: Für die Interaktion mit Azure Event Hubs benötigen Sie auch einen Namespace und einen Event Hub. Wenn Sie mit dem Erstellen von Azure-Ressourcen nicht vertraut sind, können Sie die Schritt-für-Schritt-Anleitung zum Erstellen eines Event Hubs mit dem Azure-Portal befolgen. Dort finden Sie auch ausführliche Anweisungen zum Verwenden von Azure CLI-, Azure PowerShell- oder Arm-Vorlagen (Azure Resource Manager) zum Erstellen eines Event Hubs.
C# 8.0: Die Azure Event Hubs-Clientbibliothek verwendet neue Features, die in C# 8.0 eingeführt wurden. Um die C# 8.0-Syntax nutzen zu können, empfiehlt es sich, das .NET Core SDK 3.0 oder höher mit einer Sprachversion von
latest
zu kompilieren.Visual Studio-Benutzer, die die C# 8.0-Syntax vollständig nutzen möchten, müssen Visual Studio 2019 oder höher verwenden. Visual Studio 2019 (einschließlich der kostenlosen Community-Edition) kann hier heruntergeladen werden. Benutzer von Visual Studio 2017 können die C# 8-Syntax nutzen, indem sie das NuGet-Paket Microsoft.Net.Compilers verwenden und die Sprachversion festlegen, obwohl die Bearbeitungserfahrung möglicherweise nicht ideal ist.
Sie können die Bibliothek weiterhin mit früheren C#-Sprachversionen verwenden, müssen aber asynchrone aufzählbare und asynchrone verwerfbare Member manuell verwalten, anstatt von der neuen Syntax zu profitieren. Sie können weiterhin jede Frameworkversion verwenden, die von Ihrem .NET Core SDK unterstützt wird, einschließlich früherer Versionen von .NET Core oder .NET Framework. Weitere Informationen finden Sie unter Angeben von Zielframeworks.
Wichtiger Hinweis: Um die Beispiele und die Beispiele ohne Änderung zu erstellen oder auszuführen, ist die Verwendung von C# 11.0 erforderlich. Sie können die Beispiele weiterhin ausführen, wenn Sie sie für andere Sprachversionen optimieren möchten. Ein Beispiel hierfür finden Sie im Beispiel: Frühere Sprachversionen.
Um schnell einen grundlegenden Satz von Event Hubs-Ressourcen in Azure zu erstellen und eine Verbindungszeichenfolge für diese zu erhalten, können Sie unsere Beispielvorlage bereitstellen, indem Sie auf Folgendes klicken:
Installieren des Pakets
Installieren Sie die Azure Event Hubs-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Messaging.EventHubs
Authentifizieren des Clients
Damit die Event Hubs-Clientbibliothek mit einem Event Hub interagieren kann, muss sie verstehen, wie eine Verbindung hergestellt und autorisiert werden kann. Die einfachste Möglichkeit hierfür ist die Verwendung einer Verbindungszeichenfolge, die beim Erstellen eines Event Hubs-Namespaces automatisch erstellt wird. Wenn Sie mit der Verwendung von Verbindungszeichenfolgen mit Event Hubs nicht vertraut sind, können Sie die Schritt-für-Schritt-Anleitung befolgen, um eine Event Hubs-Verbindungszeichenfolge zu erhalten.
Sobald Sie über eine Verbindungszeichenfolge verfügen, können alle Event Hubs-Clienttypen damit erstellt werden:
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using var producer = new EventHubProducerClient(connectionString, eventHubName);
Beispiele für die Authentifizierung der Event Hubs-Clients mit Anmeldeinformationstypen finden Sie unter Verwenden eines Azure Active Directory-Prinzipals (AAD) oder im Beispiel für Identitäts- und Shared Access-Anmeldeinformationen .
Beispiele für die Authentifizierung der Event Hubs-Clients für eine ASP.NET Core-Anwendung finden Sie unter Registrieren mit ASP.NET Core Abhängigkeitsinjektion.
Wichtige Begriffe
Ein Event Hub-Client ist die primäre Schnittstelle für Entwickler, die mit der Event Hubs-Clientbibliothek interagieren. Es gibt mehrere verschiedene Event Hub-Clients, die jeweils einer bestimmten Verwendung von Event Hubs zugeordnet sind, z. B. das Veröffentlichen oder Nutzen von Ereignissen.
Ein Event Hub-Producer ist ein Clienttyp, der als Quelle für Telemetriedaten, Diagnoseinformationen, Nutzungsprotokolle oder andere Protokolldaten als Teil einer eingebetteten Gerätelösung, einer mobilen Geräteanwendung, eines Spieletitels, der auf einer Konsole oder einem anderen Gerät ausgeführt wird, einer client- oder serverbasierten Geschäftslösung oder einer Website dient.
Ein Event Hub-Consumer ist ein Clienttyp, der Informationen aus dem Event Hub liest und deren Verarbeitung ermöglicht. Die Verarbeitung kann Aggregation, komplexe Berechnung und Filterung umfassen. Die Verarbeitung kann auch eine unformatierte oder transformierte Verteilung oder Speicherung der Informationen umfassen. Event Hub-Consumer sind häufig robuste und umfangreiche Komponenten der Plattforminfrastruktur mit integrierten Analysefunktionen wie Azure Stream Analytics, Apache Spark oder Apache Storm.
Eine Partition ist eine geordnete Sequenz Abfolge von Ereignissen, die in einem Event Hub erfolgt. Partitionen sind ein Mittel der Datenorganisation, die mit der von Ereignisconsumer geforderten Parallelität verbunden ist. Azure Event Hubs ermöglicht Nachrichtenstreaming über ein partitioniertes Consumermuster, bei dem jeder Consumer nur eine bestimmte Teilmenge oder Partition des Nachrichtendatenstroms liest. Neu eingehende Ereignisse werden am Ende dieser Sequenz hinzugefügt. Die Anzahl der Partitionen wird zum Zeitpunkt der Erstellung eines Event Hubs angegeben und kann nicht geändert werden.
Eine Consumergruppe ist eine Ansicht eines vollständigen Event Hubs. Consumergruppen ermöglichen es mehreren verarbeitenden Anwendungen, jeweils eine eigene Ansicht des Ereignisdatenstroms zu verwenden und den Datenstrom unabhängig voneinander in ihrem eigenen Tempo und von ihrer eigenen Position aus zu lesen. Pro Consumergruppe können höchstens fünf gleichzeitige Leser auf einer Partition vorhanden sein. Es wird jedoch empfohlen, nur einen aktiven Consumer für eine bestimmte Partitions- und Consumergruppenkopplung zu verwenden. Jeder aktive Leser empfängt alle Ereignisse aus seiner Partition. Wenn sich mehrere Reader auf derselben Partition befinden, erhalten sie doppelte Ereignisse.
Weitere Konzepte und ausführlichere Erläuterungen finden Sie unter Event Hubs-Features.
Clientlebensdauer
Jeder Event Hubs-Clienttyp kann sicher zwischengespeichert und als Singleton für die Lebensdauer der Anwendung verwendet werden. Dies ist eine bewährte Methode, wenn Ereignisse regelmäßig veröffentlicht oder gelesen werden. Die Clients sind für eine effiziente Verwaltung der Netzwerk-, CPU- und Arbeitsspeichernutzung verantwortlich und arbeiten daran, die Nutzung in Zeiten der Inaktivität niedrig zu halten. Das Aufrufen von CloseAsync
oder DisposeAsync
auf einem Client ist erforderlich, um sicherzustellen, dass Netzwerkressourcen und andere nicht verwaltete Objekte ordnungsgemäß bereinigt werden.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Die Datenmodelltypen, z EventData
. B. und EventDataBatch
, sind nicht threadsicher. Sie sollten nicht über Threads hinweg freigegeben oder gleichzeitig mit Clientmethoden verwendet werden.
Zusätzliche Konzepte
Clientoptionen | Behandeln von Fehlern | Diagnose | Spott
Beispiele
Untersuchen eines Event Hubs
Viele Event Hub-Vorgänge finden im Bereichs einer bestimmten Partition statt. Da sich Partitionen im Besitz des Event Hubs befinden, werden ihre Namen zum Zeitpunkt der Erstellung zugewiesen. Um zu verstehen, welche Partitionen verfügbar sind, fragen Sie den Event Hub mit einem der Event Hub-Clients ab. Zur Veranschaulichung wird in diesen Beispielen EventHubProducerClient
verwendet, das Konzept und die Form sind aber clientübergreifend gleich.
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using (var producer = new EventHubProducerClient(connectionString, eventHubName))
{
string[] partitionIds = await producer.GetPartitionIdsAsync();
}
Veröffentlichen von Ereignissen für einen Event Hub
Um Ereignisse zu veröffentlichen, müssen Sie einen EventHubProducerClient
erstellen. Producer veröffentlichen Ereignisse in Batches und können eine bestimmte Partition anfordern oder dem Event Hubs-Dienst die Entscheidung erlauben, auf welcher Partition Ereignisse veröffentlicht werden sollen. Es wird empfohlen, automatisches Routing zu verwenden, wenn die Veröffentlichung von Ereignissen hochverfügbar sein muss oder wenn Ereignisdaten gleichmäßig auf die Partitionen verteilt werden sollen. In unserem Beispiel wird automatisches Routing genutzt.
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using (var producer = new EventHubProducerClient(connectionString, eventHubName))
{
using EventDataBatch eventBatch = await producer.CreateBatchAsync();
if ((!eventBatch.TryAdd(new EventData("First"))) ||
(!eventBatch.TryAdd(new EventData("Second"))))
{
throw new ApplicationException("Not all events could be added to the batch!");
}
await producer.SendAsync(eventBatch);
}
Lesen von Ereignissen aus einem Event Hub
Um Ereignisse aus einem Event Hub zu lesen, müssen Sie einen EventHubConsumerClient
für die jeweilige Consumergruppe erstellen. Wenn ein Event Hub erstellt wird, stellt er eine Standardconsumergruppe bereit, die verwendet werden kann, um mit dem Erkunden von Event Hubs zu beginnen. In unserem Beispiel konzentrieren wir uns auf das Lesen aller Ereignisse, die mithilfe eines Iterators im Event Hub veröffentlicht wurden.
Hinweis: Es ist wichtig zu beachten, dass dieser Ansatz für die Nutzung die Erfahrung beim Erkunden der Event Hubs-Clientbibliothek und der Prototyperstellung verbessern soll. Es wird empfohlen, diesen Ansatz nicht in Produktionsszenarien zu verwenden. Für die Verwendung in der Produktion empfehlen wir den Ereignisprozessorclient, da er eine stabilere und leistungsfähigere Erfahrung bietet.
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
string consumerGroup = EventHubConsumerClient.DefaultConsumerGroupName;
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using (var consumer = new EventHubConsumerClient(consumerGroup, connectionString, eventHubName))
{
using var cancellationSource = new CancellationTokenSource();
cancellationSource.CancelAfter(TimeSpan.FromSeconds(45));
await foreach (PartitionEvent receivedEvent in consumer.ReadEventsAsync(cancellationSource.Token))
{
// At this point, the loop will wait for events to be available in the Event Hub. When an event
// is available, the loop will iterate with the event that was received. Because we did not
// specify a maximum wait time, the loop will wait forever unless cancellation is requested using
// the cancellation token.
}
}
Lesen von Ereignissen aus einem Event Hub
Um Ereignisse für eine Event Hub-Partition zu lesen, müssen Sie eine EventHubConsumerClient
für eine bestimmte Consumergruppe erstellen. Wenn ein Event Hub erstellt wird, stellt er eine Standardconsumergruppe bereit, die verwendet werden kann, um mit dem Erkunden von Event Hubs zu beginnen. Um aus einer bestimmten Partition zu lesen, muss der Consumer auch angeben, wo im Ereignisstream mit dem Empfang von Ereignissen begonnen werden soll. in unserem Beispiel konzentrieren wir uns auf das Lesen aller veröffentlichten Ereignisse für die erste Partition des Event Hubs.
var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
string consumerGroup = EventHubConsumerClient.DefaultConsumerGroupName;
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using (var consumer = new EventHubConsumerClient(consumerGroup, connectionString, eventHubName))
{
EventPosition startingPosition = EventPosition.Earliest;
string partitionId = (await consumer.GetPartitionIdsAsync()).First();
using var cancellationSource = new CancellationTokenSource();
cancellationSource.CancelAfter(TimeSpan.FromSeconds(45));
await foreach (PartitionEvent receivedEvent in consumer.ReadEventsFromPartitionAsync(partitionId, startingPosition, cancellationSource.Token))
{
// At this point, the loop will wait for events to be available in the partition. When an event
// is available, the loop will iterate with the event that was received. Because we did not
// specify a maximum wait time, the loop will wait forever unless cancellation is requested using
// the cancellation token.
}
}
Verarbeiten von Ereignissen mithilfe eines Ereignisprozessorclients
Für die meisten Produktionsszenarien wird empfohlen, den Ereignisprozessorclient zum Lesen und Verarbeiten von Ereignissen zu verwenden. Der Prozessor soll eine stabile Oberfläche für die Verarbeitung von Ereignissen in allen Partitionen eines Event Hubs auf eine leistungsfähige und fehlertolerante Weise bereitstellen und gleichzeitig eine Möglichkeit zum Beibehalten des Zustands bieten. Ereignisprozessorclients sind auch in der Lage, im Kontext einer Consumergruppe für einen bestimmten Event Hub kooperativ zu arbeiten, wo sie automatisch die Verteilung und den Ausgleich der Arbeit verwalten, wenn Instanzen für die Gruppe verfügbar oder nicht mehr verfügbar sind.
Da EventProcessorClient
eine Abhängigkeit von Azure Storage-Blobs für die Persistenz des Zustands aufweist, müssen Sie einen BlobContainerClient
für den Prozessor bereitstellen, der für das Speicherkonto und den Container konfiguriert wurde, die verwendet werden sollen.
var cancellationSource = new CancellationTokenSource();
cancellationSource.CancelAfter(TimeSpan.FromSeconds(45));
var storageConnectionString = "<< CONNECTION STRING FOR THE STORAGE ACCOUNT >>";
var blobContainerName = "<< NAME OF THE BLOB CONTAINER >>";
var eventHubsConnectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
var consumerGroup = "<< NAME OF THE EVENT HUB CONSUMER GROUP >>";
Task processEventHandler(ProcessEventArgs eventArgs) => Task.CompletedTask;
Task processErrorHandler(ProcessErrorEventArgs eventArgs) => Task.CompletedTask;
var storageClient = new BlobContainerClient(storageConnectionString, blobContainerName);
var processor = new EventProcessorClient(storageClient, consumerGroup, eventHubsConnectionString, eventHubName);
processor.ProcessEventAsync += processEventHandler;
processor.ProcessErrorAsync += processErrorHandler;
await processor.StartProcessingAsync();
try
{
// The processor performs its work in the background; block until cancellation
// to allow processing to take place.
await Task.Delay(Timeout.Infinite, cancellationSource.Token);
}
catch (TaskCanceledException)
{
// This is expected when the delay is canceled.
}
try
{
await processor.StopProcessingAsync();
}
finally
{
// To prevent leaks, the handlers should be removed when processing is complete.
processor.ProcessEventAsync -= processEventHandler;
processor.ProcessErrorAsync -= processErrorHandler;
}
Weitere Informationen finden Sie in der Infodatei des Ereignisprozessorclients und den zugehörigen Beispielen.
Verwenden eines Active Directory-Prinzipals mit den Event Hub-Clients
Die Azure Identity-Bibliothek bietet Unterstützung für die AAD-Authentifizierung (Azure Active Directory), die für die Azure-Clientbibliotheken einschließlich Event Hubs verwendet werden kann.
Um einen Active Directory-Prinzipal zu verwenden, wird beim Erstellen des Event Hubs-Clients einer der verfügbaren Anmeldeinformationen aus Azure.Identity
der Bibliothek angegeben. Darüber hinaus werden der vollqualifizierte Event Hubs-Namespace und der Name des gewünschten Event Hubs anstelle der Event Hubs-Verbindungszeichenfolge bereitgestellt. Zur Veranschaulichung wird in diesen Beispielen EventHubProducerClient
verwendet, das Konzept und die Form sind aber clientübergreifend gleich.
var fullyQualifiedNamespace = "<< FULLY-QUALIFIED EVENT HUBS NAMESPACE (like something.servicebus.windows.net) >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
var credential = new DefaultAzureCredential();
// It is recommended that you cache the Event Hubs clients for the lifetime of your
// application, closing or disposing when application ends. This example disposes
// after the immediate scope for simplicity.
await using (var producer = new EventHubProducerClient(fullyQualifiedNamespace, eventHubName, credential))
{
using EventDataBatch eventBatch = await producer.CreateBatchAsync();
if ((!eventBatch.TryAdd(new EventData("First"))) ||
(!eventBatch.TryAdd(new EventData("Second"))))
{
throw new ApplicationException("Not all events could be added to the batch!");
}
await producer.SendAsync(eventBatch);
}
Wenn Sie Azure Active Directory verwenden, muss Ihrem Prinzipal eine Rolle zugewiesen werden, die den Zugriff auf Event Hubs ermöglicht, z. B. die Azure Event Hubs Data Owner
Rolle. Weitere Informationen zur Verwendung der Azure Active Directory-Autorisierung mit Event Hubs finden Sie in der zugehörigen Dokumentation.
Registrieren mit ASP.NET Core Abhängigkeitsinjektion
Um einen der Event Hubs-Clients als Abhängigkeit in eine ASP.NET Core-Anwendung einzufügen, installieren Sie die Azure-Clientbibliotheksintegration für ASP.NET Core Paket.
dotnet add package Microsoft.Extensions.Azure
Registrieren Sie nach der Installation die gewünschten Event Hubs-Clienttypen in der Startup.ConfigureServices
-Methode:
public void ConfigureServices(IServiceCollection services)
{
services.AddAzureClients(builder =>
{
builder.AddEventHubProducerClient(Configuration.GetConnectionString("EventHubs"));
});
services.AddControllers();
}
Um den obigen Code zu verwenden, fügen Sie diesen der Konfiguration für Ihre Anwendung hinzu:
{
"ConnectionStrings": {
"EventHubs": "<connection_string>"
}
}
Bei Anwendungen, die die Verwendung freigegebener Azure.Identity
Anmeldeinformationen für ihre Clients bevorzugen, sieht die Registrierung etwas anders aus:
var fullyQualifiedNamespace = "<< FULLY-QUALIFIED EVENT HUBS NAMESPACE (like something.servicebus.windows.net) >>";
public void ConfigureServices(IServiceCollection services)
{
services.AddAzureClients(builder =>
{
// This will register the EventHubProducerClient using the default credential.
builder.AddEventHubProducerClientWithNamespace(fullyQualifiedNamespace);
// By default, DefaultAzureCredential is used, which is likely desired for most
// scenarios. If you need to restrict to a specific credential instance, you could
// register that instance as the default credential instead.
builder.UseCredential(new ManagedIdentityCredential());
});
services.AddControllers();
}
Weitere Informationen finden Sie unter Abhängigkeitsinjektion mit dem Azure SDK für .NET.
Problembehandlung
Ausführliche Informationen zur Problembehandlung finden Sie im Leitfaden zur Problembehandlung für Event Hubs.
Protokollierung und Diagnose
Die Event Hubs-Clientbibliothek ist vollständig für die Protokollierung von Informationen auf verschiedenen Detailebenen mithilfe von .NET EventSource
zum Ausgeben von Informationen instrumentiert. Die Protokollierung wird für jeden Vorgang durchgeführt und folgt dem Muster der Markierung des Ausgangspunkts des Vorgangs, des Abschlusses und aller aufgetretenen Ausnahmen. Zusätzliche Informationen, die möglicherweise Einblicke bieten, werden auch im Kontext des zugehörigen Vorgangs protokolliert.
Die Event Hubs-Clientprotokolle sind für alle EventListener
verfügbar, indem Sie die Quelle mit dem Namen "Azure-Messaging-EventHubs" oder alle Quellen mit dem Merkmal "AzureEventSource" auswählen. Um das Erfassen von Protokollen aus den Azure-Clientbibliotheken zu vereinfachen, bietet die Azure.Core
von Event Hubs verwendete Bibliothek eine AzureEventSourceListener
. Weitere Informationen finden Sie unter Erfassen von Event Hubs-Protokollen mithilfe von AzureEventSourceListener.
Die Event Hubs-Clientbibliothek wird auch für die verteilte Ablaufverfolgung mit Application Insights oder OpenTelemetry instrumentiert. Weitere Informationen finden Sie im Azure.Core-Diagnosebeispiel.
Nächste Schritte
Neben den beschriebenen Einführungsszenarien bietet die Azure Event Hubs Clientbibliothek Unterstützung für zusätzliche Szenarien, um den vollständigen Funktionsumfang des Azure Event Hubs-Diensts zu nutzen. Um einige dieser Szenarien zu erkunden, bietet die Event Hubs-Clientbibliothek ein Projekt mit Beispielen, die als Veranschaulichung für gängige Szenarien dienen. Weitere Informationen finden Sie in der Infodatei zu Den Beispielen.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Weitere Informationen finden Sie in unserem Leitfaden für Beiträge .