EventHubConsumerClient Classe
- java.
lang. Object - com.
azure. messaging. eventhubs. EventHubConsumerClient
- com.
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. |
Event |
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. |
Iterable |
getPartitionIds()
Récupère les identificateurs des partitions d’un Event Hub. |
Partition |
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. |
Iterable |
receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition)
Reçoit un lot de PartitionEvent de la partition Event Hub. |
Iterable |
receiveFromPartition(String partitionId, int maximumMessageCount, EventPosition startingPosition, Duration maximumWaitTime)
Reçoit un lot de PartitionEvent de la partition Event Hub. |
Iterable |
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:
getEventHubName
public String getEventHubName()
Obtient le nom d’Event Hub avec lequel ce client interagit.
Returns:
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:
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:
getIdentifier
public String getIdentifier()
Obtient l’identificateur du client.
Returns:
getPartitionIds
public IterableStream
Récupère les identificateurs des partitions d’un Event Hub.
Returns:
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:
Returns:
receiveFromPartition
public IterableStream
Reçoit un lot de PartitionEvent de la partition Event Hub.
Parameters:
Returns:
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
Reçoit un lot de PartitionEvent de la partition Event Hub.
Parameters:
Returns:
maximumMessageCount
des événements.receiveFromPartition
public IterableStream
Reçoit un lot de PartitionEvent de la partition Event Hub.
Parameters:
Returns:
maximumMessageCount
des événements.S’applique à
Azure SDK for Java