EventHubBufferedProducerClient Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Client responsable de la publication d’instances de EventData dans un Event Hub spécifique. Selon les options spécifiées lorsque les événements sont en file d’attente, ils peuvent être automatiquement attribués à une partition, regroupés en fonction de la clé de partition spécifiée ou affectés à une partition spécifiquement demandée.
ne EventHubBufferedProducerClient publie pas immédiatement, mais utilise un modèle différé où les événements sont collectés dans une mémoire tampon afin qu’ils puissent être efficacement traités par lots et publiés lorsque le lot est complet ou que le MaximumWaitTime est écoulé sans qu’aucun nouvel événement ne soit mis en file d’attente.
Ce modèle est destiné à déplacer la charge de la gestion par lots des appelants, au prix d’un timing non déterministe, pour le moment où les événements seront publiés. Il existe également d’autres compromis à prendre en compte :
- Si l’application se bloque, les événements dans la mémoire tampon n’auront pas été publiés. Pour éviter la perte de données, les appelants sont encouragés à suivre la progression de la publication à l’aide des SendEventBatchSucceededAsync gestionnaires et SendEventBatchFailedAsync .
- Les événements spécifiant une clé de partition peuvent se voir attribuer une partition différente de ceux qui utilisent la même clé avec d’autres producteurs.
- Dans le cas peu probable où une partition devient temporairement indisponible, la EventHubBufferedProducerClient récupération peut prendre plus de temps que les autres producteurs.
Dans les scénarios où il est important d’avoir des événements publiés immédiatement avec un résultat déterministe, assurez-vous que les clés de partition sont attribuées à une partition cohérente avec d’autres éditeurs, ou lorsque l’optimisation de la disponibilité est une exigence, l’utilisation de est EventHubProducerClient recommandée.
public class EventHubBufferedProducerClient : IAsyncDisposable
type EventHubBufferedProducerClient = class
interface IAsyncDisposable
Public Class EventHubBufferedProducerClient
Implements IAsyncDisposable
- Héritage
-
EventHubBufferedProducerClient
- Implémente
Remarques
Le EventHubBufferedProducerClient est sûr à mettre en cache et à utiliser en tant que singleton pendant la durée de vie d’une application, ce qui est l’approche recommandée. Le producteur est chargé de garantir une utilisation efficace du réseau, du processeur et de la mémoire. CloseAsync(Boolean, CancellationToken)DisposeAsync() L’appel ou quand aucun autre événement ne sera mis en file d’attente ou lorsque l’application s’arrête est nécessaire afin que la mémoire tampon puisse être vidée et les ressources nettoyées correctement.
Constructeurs
Propriétés
EventHubName |
Nom du hub d’événements auquel ce producteur est connecté, spécifique à l’espace de noms Event Hubs qui le contient. |
FullyQualifiedNamespace |
Espace de noms Event Hubs complet auquel ce producteur est actuellement associé, qui sera probablement similaire à |
Identifier |
Nom unique permettant d’identifier le producteur mis en mémoire tampon. |
IsClosed |
Indique si cette EventHubBufferedProducerClient opération a été fermée ou non. |
IsPublishing |
Indique s’il est actuellement actif et s’il EventHubBufferedProducerClient publie des événements en file d’attente. |
TotalBufferedEventCount |
Nombre total d’événements actuellement mis en mémoire tampon et en attente d’être publiés, sur toutes les partitions. |
Méthodes
CloseAsync(Boolean, CancellationToken) |
Ferme le producteur et effectue les tâches nécessaires pour propre toutes les ressources utilisées par .EventHubBufferedProducerClient |
DisposeAsync() |
Ferme le producteur et effectue les tâches nécessaires pour propre toutes les ressources utilisées par .EventHubBufferedProducerClient |
EnqueueEventAsync(EventData, CancellationToken) |
Met en file d’attente un EventData dans la mémoire tampon à publier dans event Hub. S’il n’y a aucune capacité dans la mémoire tampon lorsque cette méthode est appelée, elle attend que l’espace soit disponible et s’assure que le Lorsque cet appel est retourné, le |
EnqueueEventAsync(EventData, EnqueueEventOptions, CancellationToken) |
Met en file d’attente un EventData dans la mémoire tampon à publier dans event Hub. S’il n’y a aucune capacité dans la mémoire tampon lorsque cette méthode est appelée, elle attend que l’espace soit disponible et s’assure que le Lorsque cet appel est retourné, le |
EnqueueEventsAsync(IEnumerable<EventData>, CancellationToken) |
Met en file d’attente un ensemble de EventData dans la mémoire tampon à publier dans le hub d’événements. Si la capacité de la mémoire tampon est insuffisante lors de l’appel de cette méthode, elle attend que l’espace soit disponible et s’assure que tout Lorsque cet appel est retourné, les |
EnqueueEventsAsync(IEnumerable<EventData>, EnqueueEventOptions, CancellationToken) |
Met en file d’attente un ensemble de EventData dans la mémoire tampon à publier dans le hub d’événements. Si la capacité de la mémoire tampon est insuffisante lors de l’appel de cette méthode, elle attend que l’espace soit disponible et s’assure que tout Lorsque cet appel est retourné, les |
FlushAsync(CancellationToken) |
Tente de publier tous les événements dans la mémoire tampon immédiatement. Cela peut entraîner la publication de plusieurs lots, dont le résultat sera signalé individuellement par les SendEventBatchSucceededAsync gestionnaires et SendEventBatchFailedAsync . Une fois cette méthode terminée, la mémoire tampon est vide. |
GetBufferedEventCount(String) |
Nombre d’événements mis en mémoire tampon et en attente d’être publiés pour une partition donnée. |
GetEventHubPropertiesAsync(CancellationToken) |
Récupère des informations sur le hub d’événements auquel la connexion est associée, notamment le nombre de partitions présentes et leurs identificateurs. |
GetPartitionIdsAsync(CancellationToken) |
Récupère le jeu d’identificateurs pour les partitions d’un Event Hub. |
GetPartitionPropertiesAsync(String, CancellationToken) |
Récupère des informations sur une partition spécifique pour un Event Hub, y compris des éléments qui décrivent les événements disponibles dans le flux d’événements de partition. |
ListPartitionIdsAsync(EventHubProducerClient, CancellationToken) |
Requêtes pour les identificateurs des partitions Event Hub. |
OnSendFailedAsync(IReadOnlyList<EventData>, Exception, String, CancellationToken) |
Responsable du déclenchement de l’événement SendEventBatchFailedAsync en cas d’échec de publication d’un lot d’événements, une fois que toutes les nouvelles tentatives éligibles sont épuisées. |
OnSendSucceededAsync(IReadOnlyList<EventData>, String, CancellationToken) |
Responsable du déclenchement de l’événement SendEventBatchSucceededAsync en cas de publication réussie d’un lot d’événements. |
Événements
SendEventBatchFailedAsync |
Appelé pour tout lot d’événements qui n’ont pas pu être publiés sur event Hub, ce gestionnaire doit être fourni avant que les événements puissent être mis en file d’attente. Si ce producteur n’a pas été configuré avec MaximumConcurrentSends et MaximumConcurrentSendsPerPartition que les deux ont la valeur 1, le gestionnaire est appelé simultanément. Il est prudent d’essayer de renvoyer les événements en appelant EnqueueEventAsync(EventData, EnqueueEventOptions, CancellationToken) ou EnqueueEventsAsync(IEnumerable<EventData>, EnqueueEventOptions, CancellationToken) à partir de ce gestionnaire. Il est important de noter que cela les placera à la fin de la mémoire tampon; la commande d’origine ne sera pas conservée. Ce gestionnaire sera attendu après l’échec de publication du lot ; l’opération de publication n’est pas considérée comme terminée tant que l’appel du gestionnaire n’est pas retourné. Il est recommandé qu’aucune opération de longue durée ne soit effectuée dans le gestionnaire pour éviter d’avoir un impact négatif sur le débit. Il n’est pas recommandé d’appeler CloseAsync(Boolean, CancellationToken) ou DisposeAsync() à partir de ce gestionnaire ; cela peut entraîner un scénario d’interblocage si ces appels sont attendus. |
SendEventBatchSucceededAsync |
Appelé après la publication de chaque lot d’événements sur Event Hub, ce gestionnaire est facultatif et est destiné à fournir des notifications aux écouteurs intéressés. Si ce producteur a été configuré avec MaximumConcurrentSends ou défini avec une valeur supérieure à MaximumConcurrentSendsPerPartition 1, le gestionnaire est appelé simultanément. Ce gestionnaire sera attendu après la publication du lot ; l’opération de publication n’est pas considérée comme terminée tant que l’appel du gestionnaire n’est pas retourné. Il est recommandé qu’aucune opération de longue durée ne soit effectuée dans le gestionnaire pour éviter d’avoir un impact négatif sur le débit. Il n’est pas recommandé d’appeler CloseAsync(Boolean, CancellationToken) ou DisposeAsync() à partir de ce gestionnaire ; cela peut entraîner un scénario d’interblocage si ces appels sont attendus. |
S’applique à
Voir aussi
Azure SDK for .NET