Partager via


EventHubConsumerClient Classe

  • java.lang.Object
    • com.azure.messaging.eventhubs.EventHubConsumerClient

Implémente

public class EventHubConsumerClient
implements Closeable

Consommateur synchrone responsable de la lecture EventData à partir d’une partition Event Hub dans le contexte d’un groupe de consommateurs spécifique.

La plupart des opérations de réception contiennent un paramètre maxWaitTime. L’itérable est retourné lorsque l’élément maxWaitTime est écoulé ou numberOfEvents qu’il a été reçu. Il est possible d’avoir un itérable vide si aucun événement n’a été reçu au cours de cette période. receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition) n’a pas de paramètre pour maxWaitTime, par conséquent, le retour des résultats peut prendre beaucoup de temps si numberOfEvents est trop élevé et que le trafic est faible dans ce hub d’événements.

Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, ce qui est approprié pour la plupart des scénarios, y compris les environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .

Exemple : Création d’un consommateur synchrone

L’exemple de code suivant illustre la création du client EventHubConsumerClientsynchrone . fullyQualifiedNamespace est le nom d’hôte de l’espace de noms Event Hubs. Il est répertorié sous le volet « Essentials » après avoir accédé à l’espace de noms Event Hubs via le portail Azure. consumerGroup Le est trouvé en accédant à l’instance Event Hub, puis en sélectionnant « Groupes de consommateurs » sous le panneau « Entités ». consumerGroup(String consumerGroup) est requis pour créer des clients consommateurs.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // "<<fully-qualified-namespace>>" will look similar to "{your-namespace}.servicebus.windows.net"
 // "<<event-hub-name>>" will be the name of the Event Hub instance you created inside the Event Hubs namespace.
 EventHubConsumerClient consumer = new EventHubClientBuilder()
     .credential("<<fully-qualified-namespace>>", "<<event-hub-name>>",
         credential)
     .consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME)
     .buildConsumerClient();

Exemple : Consommation d’événements à partir d’une partition unique

Les événements d’une partition unique peuvent être consommés à l’aide de receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition) ou receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime). L’appel à receiveFromPartition se termine et retourne un IterableStream<T> lorsque le nombre maximal d’événements est reçu ou que le délai d’expiration est écoulé. Il est possible de retourner un itérable vide s’il n’y a pas eu d’événements reçus pendant cette durée.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // "<<fully-qualified-namespace>>" will look similar to "{your-namespace}.servicebus.windows.net"
 // "<<event-hub-name>>" will be the name of the Event Hub instance you created inside the Event Hubs namespace.
 EventHubConsumerClient consumer = new EventHubClientBuilder()
     .credential("<<fully-qualified-namespace>>", "<<event-hub-name>>",
         credential)
     .consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME)
     .buildConsumerClient();

 Instant twelveHoursAgo = Instant.now().minus(Duration.ofHours(12));
 EventPosition startingPosition = EventPosition.fromEnqueuedTime(twelveHoursAgo);
 String partitionId = "0";

 // Reads events from partition '0' and returns the first 100 received or until the 30 seconds has elapsed.
 IterableStream<PartitionEvent> events = consumer.receiveFromPartition(partitionId, 100,
     startingPosition, Duration.ofSeconds(30));

 Long lastSequenceNumber = -1L;
 for (PartitionEvent partitionEvent : events) {
     // For each event, perform some sort of processing.
     System.out.print("Event received: " + partitionEvent.getData().getSequenceNumber());
     lastSequenceNumber = partitionEvent.getData().getSequenceNumber();
 }

 // Figure out what the next EventPosition to receive from is based on last event we processed in the stream.
 // If lastSequenceNumber is -1L, then we didn't see any events the first time we fetched events from the
 // partition.
 if (lastSequenceNumber != -1L) {
     EventPosition nextPosition = EventPosition.fromSequenceNumber(lastSequenceNumber, false);

     // Gets the next set of events from partition '0' to consume and process.
     IterableStream<PartitionEvent> nextEvents = consumer.receiveFromPartition(partitionId, 100,
         nextPosition, Duration.ofSeconds(30));
 }

Résumé de la méthode

Modificateur et type Méthode et description
void close()
String getConsumerGroup()

Obtient le groupe de consommateurs dont ce consommateur lit les événements dans le cadre de.

String getEventHubName()

Obtient le nom d’Event Hub avec lequel ce client interagit.

EventHubProperties getEventHubProperties()

Récupère des informations sur un hub d’événements, notamment le nombre de partitions présentes et leurs identificateurs.

String getFullyQualifiedNamespace()

Obtient l’espace de noms Event Hubs complet auquel la connexion est associée.

String getIdentifier()

Obtient l’identificateur du client.

IterableStream<String> getPartitionIds()

Récupère les identificateurs des partitions d’un Event Hub.

PartitionProperties getPartitionProperties(String partitionId)

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.

IterableStream<PartitionEvent> receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition)

Reçoit un lot de PartitionEvent de la partition Event Hub.

IterableStream<PartitionEvent> receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime)

Reçoit un lot de PartitionEvent de la partition Event Hub.

IterableStream<PartitionEvent> receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime, ReceiveOptions receiveOptions)

Reçoit un lot de PartitionEvent de la partition Event Hub.

Méthodes héritées de java.lang.Object

Détails de la méthode

close

public void close()

getConsumerGroup

public String getConsumerGroup()

Obtient le groupe de consommateurs dont ce consommateur lit les événements dans le cadre de.

Returns:

Le groupe de consommateurs dont ce consommateur lit les événements dans le cadre de.

getEventHubName

public String getEventHubName()

Obtient le nom d’Event Hub avec lequel ce client interagit.

Returns:

Nom event Hub avec lequel ce client interagit.

getEventHubProperties

public EventHubProperties getEventHubProperties()

Récupère des informations sur un hub d’événements, notamment le nombre de partitions présentes et leurs identificateurs.

Returns:

Ensemble d’informations pour le hub d’événements auquel ce client est associé.

getFullyQualifiedNamespace

public String getFullyQualifiedNamespace()

Obtient l’espace de noms Event Hubs complet auquel la connexion est associée. Cela est probablement similaire à {yournamespace}.servicebus.windows.net.

Returns:

Espace de noms Event Hubs complet auquel la connexion est associée.

getIdentifier

public String getIdentifier()

Obtient l’identificateur du client.

Returns:

Chaîne d’identificateur unique pour le client actuel.

getPartitionIds

public IterableStream getPartitionIds()

Récupère les identificateurs des partitions d’un Event Hub.

Returns:

Ensemble d’identificateurs pour les partitions d’un Event Hub.

getPartitionProperties

public PartitionProperties getPartitionProperties(String partitionId)

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.

Parameters:

partitionId - Identificateur unique d’une partition associée à Event Hub.

Returns:

Ensemble d’informations pour la partition demandée sous le hub d’événements à laquelle ce client est associé.

receiveFromPartition

public IterableStream receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition)

Reçoit un lot de PartitionEvent de la partition Event Hub.

Parameters:

partitionId - Identificateur de la partition à partir de laquelle lire les événements.
maximumMessageCount - Nombre maximal de messages à recevoir dans ce lot.
startingPosition - Position dans la partition Event Hub pour commencer à consommer des événements.

Returns:

Ensemble de PartitionEvent qui a été reçu. L’itérable contient jusqu’à maximumMessageCount des événements. Si un flux pour les événements a été ouvert auparavant, la même position au sein de cette partition est retournée. Sinon, les événements sont lus à partir de startingPosition.

receiveFromPartition

public IterableStream receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime)

Reçoit un lot de PartitionEvent de la partition Event Hub.

Parameters:

partitionId - Identificateur de la partition à partir de laquelle lire les événements.
maximumMessageCount - Nombre maximal de messages à recevoir dans ce lot.
startingPosition - Position dans la partition Event Hub pour commencer à consommer des événements.
maximumWaitTime - Délai maximal d’attente pour générer le nombre de messages demandés pour le lot ; s’il n’est pas spécifié, le temps d’attente par défaut spécifié lors de la création du consommateur sera utilisé.

Returns:

Ensemble de PartitionEvent qui a été reçu. L’itérable contient jusqu’à maximumMessageCount des événements.

receiveFromPartition

public IterableStream receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime, ReceiveOptions receiveOptions)

Reçoit un lot de PartitionEvent de la partition Event Hub.

Parameters:

partitionId - Identificateur de la partition à partir de laquelle lire les événements.
maximumMessageCount - Nombre maximal de messages à recevoir dans ce lot.
startingPosition - Position dans la partition Event Hub pour commencer à consommer des événements.
maximumWaitTime - Délai maximal d’attente pour générer le nombre de messages demandés pour le lot ; s’il n’est pas spécifié, le temps d’attente par défaut spécifié lors de la création du consommateur sera utilisé.
receiveOptions - Options lors de la réception d’événements de la partition.

Returns:

Ensemble de PartitionEvent qui a été reçu. L’itérable contient jusqu’à maximumMessageCount des événements.

S’applique à