EventProcessorClientBuilder Classe
- java.
lang. Object - com.
azure. messaging. eventhubs. EventProcessorClientBuilder
- com.
Implémente
public class EventProcessorClientBuilder
implements TokenCredentialTrait<EventProcessorClientBuilder>, AzureNamedKeyCredentialTrait<EventProcessorClientBuilder>, ConnectionStringTrait<EventProcessorClientBuilder>, AzureSasCredentialTrait<EventProcessorClientBuilder>, AmqpTrait<EventProcessorClientBuilder>, ConfigurationTrait<EventProcessorClientBuilder>
Cette classe fournit une API Fluent Builder pour faciliter la configuration et l’instanciation EventProcessorClientdu . L’appel buildEventProcessorClient() construit une nouvelle instance de EventProcessorClient.
Pour créer une instance de EventProcessorClient, les champs suivants sont obligatoires :
CheckpointStore - Implémentation de CheckpointStore qui stocke les informations de propriété des points de contrôle et des partitions pour activer l’équilibrage de charge et les événements traités.
processEvent(Consumer<EventContext> processEvent) ou processEventBatch(Consumer<EventBatchContext> processEventBatch, int maxBatchSize, Duration maxWaitTime) - Rappel qui traite les événements reçus à partir d’Event Hub.
processError(Consumer<ErrorContext> processError) - Rappel qui gère les erreurs qui peuvent se produire lors de l’exécution d’EventProcessorClient.
Informations d’identification pour effectuer des opérations sur Azure Event Hubs. Ils peuvent être définis à l’aide de l’une des méthodes suivantes :
- connectionString(String connectionString) avec une chaîne de connexion à un Event Hub spécifique.
- connectionString(String connectionString, String eventHubName) avec une chaîne de connexion d’espace de noms Event Hub et le nom du hub d’événements.
- credential(String fullyQualifiedNamespace, String eventHubName, TokenCredential credential) avec l’espace de noms complet, le nom du hub d’événements et un ensemble d’informations d’identification autorisées à utiliser le hub d’événements.
- credential(TokenCredential credential), credential(AzureSasCredential credential)ou credential(AzureNamedKeyCredential credential) avec fullyQualifiedNamespace(String fullyQualifiedNamespace) et eventHubName(String eventHubName). L’espace de noms complet, le nom du hub d’événements et les informations d’identification autorisées pour utiliser le hub d’événements.
Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, qui convient à la plupart des scénarios, notamment aux environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser une 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 : Construire un EventProcessorClient
L’exemple de code suivant illustre la création du client processeur. Le client processeur est recommandé pour les scénarios de production, car il peut équilibrer la charge entre plusieurs instances en cours d’exécution, effectuer des points de contrôle et se reconnecter en cas de défaillances temporaires telles que des pannes réseau. L’exemple ci-dessous utilise un en mémoireCheckpointStore, mais azure-messaging-eventhubs-checkpointstore-blob fournit un magasin de points de contrôle soutenu par Stockage Blob Azure.
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.
EventProcessorClient eventProcessorClient = new EventProcessorClientBuilder()
.consumerGroup("<< CONSUMER GROUP NAME >>")
.credential("<<fully-qualified-namespace>>", "<<event-hub-name>>",
credential)
.checkpointStore(new SampleCheckpointStore())
.processEvent(eventContext -> {
System.out.printf("Partition id = %s and sequence number of event = %s%n",
eventContext.getPartitionContext().getPartitionId(),
eventContext.getEventData().getSequenceNumber());
})
.processError(errorContext -> {
System.out.printf("Error occurred in partition processor for partition %s, %s%n",
errorContext.getPartitionContext().getPartitionId(),
errorContext.getThrowable());
})
.buildEventProcessorClient();
Récapitulatif du champ
Modificateur et type | Champ et description |
---|---|
static final Duration |
DEFAULT_LOAD_BALANCING_UPDATE_INTERVAL
Intervalle de mise à jour d’équilibrage de charge par défaut. |
static final Duration |
DEFAULT_OWNERSHIP_EXPIRATION_INTERVAL
Expiration de la propriété par défaut. |
Récapitulatif du constructeur
Constructeur | Description |
---|---|
EventProcessorClientBuilder() |
Crée une instance de EventProcessorClientBuilder. |
Résumé de la méthode
Modificateur et type | Méthode et description |
---|---|
Event |
buildEventProcessorClient()
Cela crée un nouveau EventProcessorClient configuré avec les options définies dans ce générateur. |
Event |
checkpointStore(CheckpointStore checkpointStore)
Définit le CheckpointStoreEventProcessorClient que utilisera pour stocker les informations de propriété et de point de contrôle de la partition. |
Event |
clientOptions(ClientOptions clientOptions)
Définit les options client pour le client processeur. |
Event |
configuration(Configuration configuration)
Définit le magasin de configuration utilisé pendant la construction du client de service. |
Event |
connectionString(String connectionString)
Définit les informations d’identification d’une chaîne de connexion sur le instance Event Hub. |
Event |
connectionString(String connectionString, String eventHubName)
Définit les informations d’identification en fonction d’une chaîne de connexion à l’espace de noms Event Hubs et au nom d’un instance Event Hub spécifique. |
Event |
consumerGroup(String consumerGroup)
Définit le nom du groupe de consommateurs à partir duquel le EventProcessorClient doit consommer des événements. |
Event |
credential(AzureNamedKeyCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations. |
Event |
credential(AzureSasCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations. |
Event |
credential(TokenCredential credential)
Définit le utilisé pour autoriser les TokenCredential demandes envoyées au service. |
Event |
credential(String fullyQualifiedNamespace, String eventHubName, AzureNamedKeyCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations. |
Event |
credential(String fullyQualifiedNamespace, String eventHubName, AzureSasCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations. |
Event |
credential(String fullyQualifiedNamespace, String eventHubName, TokenCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations. |
Event |
customEndpointAddress(String customEndpointAddress)
Définit une adresse de point de terminaison personnalisée lors de la connexion au service Event Hubs. |
Event |
eventHubName(String eventHubName)
Définit le nom du hub d’événements auquel connecter le client. |
Event |
fullyQualifiedNamespace(String fullyQualifiedNamespace)
Définit le nom complet de l’espace de noms Event Hubs. |
Event |
initialPartitionEventPosition(Map<String,EventPosition> initialPartitionEventPosition)
Définit la carte contenant la position d’événement à utiliser pour chaque partition si un point de contrôle pour la partition n’existe pas dans CheckpointStore. |
Event |
initialPartitionEventPosition(Function<String,EventPosition> initialEventPositionProvider)
Définit la position de départ par défaut pour chaque partition si un point de contrôle pour cette partition n’existe pas dans le CheckpointStore. |
Event |
loadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy)
EventProcessorClient le LoadBalancingStrategy utilisera pour revendiquer la propriété de la partition. |
Event |
loadBalancingUpdateInterval(Duration loadBalancingUpdateInterval)
Intervalle de temps entre les cycles de mise à jour d’équilibrage de charge. |
Event |
partitionOwnershipExpirationInterval(Duration partitionOwnershipExpirationInterval)
Durée après laquelle la propriété de la partition expire si elle n’est pas renouvelée par le processeur propriétaire instance. |
Event |
prefetchCount(int prefetchCount)
Définit le nombre utilisé par les récepteurs pour contrôler le nombre d’événements que chaque consommateur recevra activement et mettra en file d’attente localement, sans tenir compte du fait qu’une opération de réception est active ou non. |
Event |
processError(Consumer<ErrorContext> processError)
Fonction appelée lorsqu’une erreur se produit lors du traitement des événements. |
Event |
processEvent(Consumer<EventContext> processEvent)
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. |
Event |
processEvent(Consumer<EventContext> processEvent, Duration maxWaitTime)
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. |
Event |
processEventBatch(Consumer<EventBatchContext> processEventBatch, int maxBatchSize)
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. |
Event |
processEventBatch(Consumer<EventBatchContext> processEventBatch, int maxBatchSize, Duration maxWaitTime)
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. |
Event |
processPartitionClose(Consumer<CloseContext> closePartition)
Fonction appelée lorsqu’un traitement d’une partition s’arrête. |
Event |
processPartitionInitialization(Consumer<InitializationContext> initializePartition)
Fonction appelée avant le début du traitement pour une partition. |
Event |
proxyOptions(ProxyOptions proxyOptions)
Définit la configuration du proxy à utiliser pour EventHubAsyncClient. |
Event |
retry(AmqpRetryOptions retryOptions)
Déprécié
Remplacé par retryOptions(AmqpRetryOptions retryOptions).
Définit la stratégie de nouvelle tentative pour EventHubAsyncClient. |
Event |
retryOptions(AmqpRetryOptions retryOptions)
Définit la stratégie de nouvelle tentative pour EventHubAsyncClient. |
Event |
trackLastEnqueuedEventProperties(boolean trackLastEnqueuedEventProperties)
Définit si le processeur d’événements doit demander ou non des informations sur le dernier événement en file d’attente sur sa partition associée et suivre ces informations à mesure que les événements sont reçus. |
Event |
transportType(AmqpTransportType transport)
Définit le type de transport par lequel toutes les communications avec Azure Event Hubs se produisent. |
Méthodes héritées de java.lang.Object
Détails du champ
DEFAULT_LOAD_BALANCING_UPDATE_INTERVAL
public static final Duration DEFAULT_LOAD_BALANCING_UPDATE_INTERVAL
Intervalle de mise à jour d’équilibrage de charge par défaut. L’intervalle d’équilibrage doit prendre en compte la latence entre le client et le compte de stockage.
DEFAULT_OWNERSHIP_EXPIRATION_INTERVAL
public static final Duration DEFAULT_OWNERSHIP_EXPIRATION_INTERVAL
Expiration de la propriété par défaut.
Détails du constructeur
EventProcessorClientBuilder
public EventProcessorClientBuilder()
Crée une instance de EventProcessorClientBuilder.
Détails de la méthode
buildEventProcessorClient
public EventProcessorClient buildEventProcessorClient()
Cela crée un nouveau EventProcessorClient configuré avec les options définies dans ce générateur. Chaque appel à cette méthode retourne une nouvelle instance de EventProcessorClient.
Toutes les partitions traitées par celui-ci EventProcessorClient démarrent le traitement à partir de earliest() l’événement disponible dans les partitions respectives.
Returns:
checkpointStore
public EventProcessorClientBuilder checkpointStore(CheckpointStore checkpointStore)
Définit le CheckpointStoreEventProcessorClient que utilisera pour stocker les informations de propriété et de point de contrôle de la partition.
Les utilisateurs peuvent, si vous le souhaitez, fournir leur propre implémentation, qui stocke les informations de propriété et de point de CheckpointStore contrôle.
Parameters:
Returns:
clientOptions
public EventProcessorClientBuilder clientOptions(ClientOptions clientOptions)
Définit les options client pour le client processeur. L’ID d’application défini sur les options clientes sera utilisé pour le suivi. Les en-têtes définis sur ClientOptions
ne sont actuellement pas utilisés, mais peuvent être utilisés dans les versions ultérieures pour ajouter au message AMQP.
Parameters:
Returns:
configuration
public EventProcessorClientBuilder configuration(Configuration configuration)
Définit le magasin de configuration utilisé pendant la construction du client de service. S’il n’est pas spécifié, le magasin de configuration par défaut est utilisé pour configurer le EventHubAsyncClient. Utilisez NONE pour contourner l’utilisation des paramètres de configuration pendant la construction.
Parameters:
Returns:
connectionString
public EventProcessorClientBuilder connectionString(String connectionString)
Définit les informations d’identification d’une chaîne de connexion sur le instance Event Hub.
Si la chaîne de connexion est copiée à partir de l’espace de noms Event Hubs, elle ne contiendra probablement pas le nom du hub d’événements souhaité, ce qui est nécessaire. Dans ce cas, le nom peut être ajouté manuellement en ajoutant « EntityPath=EVENT_HUB_NAME » à la fin de la chaîne de connexion. Par exemple, « EntityPath=telemetry-hub ».
Si vous avez défini une stratégie d’accès partagé directement sur le hub d’événements lui-même, la copie de la chaîne de connexion à partir de ce hub d’événements génère une chaîne de connexion qui contient le nom.
Parameters:
Returns:
connectionString
public EventProcessorClientBuilder connectionString(String connectionString, String eventHubName)
Définit les informations d’identification en fonction d’une chaîne de connexion à l’espace de noms Event Hubs et au nom d’un instance Event Hub spécifique.
Parameters:
Returns:
consumerGroup
public EventProcessorClientBuilder consumerGroup(String consumerGroup)
Définit le nom du groupe de consommateurs à partir duquel le EventProcessorClient doit consommer des événements.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(AzureNamedKeyCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(AzureSasCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(TokenCredential credential)
Définit le utilisé pour autoriser les TokenCredential demandes envoyées au service. Pour plus d’informations sur l’utilisation appropriée du type, consultez la documentation sur l’identité et l’authentification du TokenCredential Kit de développement logiciel (SDK) Azure pour Java.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, AzureNamedKeyCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, AzureSasCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations.
Parameters:
Returns:
credential
public EventProcessorClientBuilder credential(String fullyQualifiedNamespace, String eventHubName, TokenCredential credential)
Définit les informations d’identification pour lesquelles Event Hub instance se connecter et comment autoriser ces informations.
Parameters:
Returns:
customEndpointAddress
public EventProcessorClientBuilder customEndpointAddress(String customEndpointAddress)
Définit une adresse de point de terminaison personnalisée lors de la connexion au service Event Hubs. Cela peut être utile lorsque votre réseau n’autorise pas la connexion à l’adresse de point de terminaison standard Azure Event Hubs, mais autorise la connexion via un intermédiaire. Par exemple : https://my.custom.endpoint.com:55300.
Si aucun port n’est spécifié, le port par défaut de est transportType(AmqpTransportType transport) utilisé.
Parameters:
Returns:
eventHubName
public EventProcessorClientBuilder eventHubName(String eventHubName)
Définit le nom du hub d’événements auquel connecter le client.
Parameters:
Returns:
fullyQualifiedNamespace
public EventProcessorClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)
Définit le nom complet de l’espace de noms Event Hubs.
Parameters:
Returns:
initialPartitionEventPosition
public EventProcessorClientBuilder initialPartitionEventPosition(Map
Définit la carte contenant la position d’événement à utiliser pour chaque partition si un point de contrôle pour la partition n’existe pas dans CheckpointStore. Cette carte est clé hors de l’ID de partition.
Une seule surcharge de doit être utilisée lors de initialPartitionEventPosition
la construction d’un EventProcessorClient.
Parameters:
Returns:
initialPartitionEventPosition
public EventProcessorClientBuilder initialPartitionEventPosition(Function
Définit la position de départ par défaut pour chaque partition si un point de contrôle pour cette partition n’existe pas dans le CheckpointStore.
Une seule surcharge de doit être utilisée lors de initialPartitionEventPosition
la construction d’un EventProcessorClient.
Parameters:
Returns:
loadBalancingStrategy
public EventProcessorClientBuilder loadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy)
EventProcessorClient le LoadBalancingStrategy utilisera pour revendiquer la propriété de la partition. Par défaut, une BALANCED approche est utilisée.
Parameters:
Returns:
loadBalancingUpdateInterval
public EventProcessorClientBuilder loadBalancingUpdateInterval(Duration loadBalancingUpdateInterval)
Intervalle de temps entre les cycles de mise à jour d’équilibrage de charge. Il s’agit également généralement de l’intervalle auquel la propriété des partitions est renouvelée. Par défaut, cet intervalle est défini sur 10 secondes.
Parameters:
Returns:
partitionOwnershipExpirationInterval
public EventProcessorClientBuilder partitionOwnershipExpirationInterval(Duration partitionOwnershipExpirationInterval)
Durée après laquelle la propriété de la partition expire si elle n’est pas renouvelée par le processeur propriétaire instance. Il s’agit de la durée pendant laquelle ce processeur instance attend avant de prendre la propriété des partitions précédemment détenues par un processeur inactif. Par défaut, cette durée est définie sur une minute.
Parameters:
Returns:
prefetchCount
public EventProcessorClientBuilder prefetchCount(int prefetchCount)
Définit le nombre utilisé par les récepteurs pour contrôler le nombre d’événements que chaque consommateur recevra activement et mettra en file d’attente localement, sans tenir compte du fait qu’une opération de réception est active ou non.
Parameters:
Returns:
processError
public EventProcessorClientBuilder processError(Consumer
Fonction appelée lorsqu’une erreur se produit lors du traitement des événements. L’entrée contient les informations de partition où l’erreur s’est produite.
Parameters:
Returns:
processEvent
public EventProcessorClientBuilder processEvent(Consumer
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. L’entrée contient le contexte de partition et les données d’événement.
Parameters:
Returns:
processEvent
public EventProcessorClientBuilder processEvent(Consumer
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. L’entrée contient le contexte de partition et les données d’événement. Si le temps d’attente maximal est défini, la réception attendra cette durée pour recevoir un événement et si aucun événement n’est reçu, le consommateur sera appelé avec des données d’événement null.
Parameters:
Returns:
processEventBatch
public EventProcessorClientBuilder processEventBatch(Consumer
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. L’entrée contient le contexte de partition et les données d’événement. Si le temps d’attente maximal est défini, la réception attendra cette durée pour recevoir un événement et si aucun événement n’est reçu, le consommateur sera appelé avec des données d’événement null.
Parameters:
Returns:
processEventBatch
public EventProcessorClientBuilder processEventBatch(Consumer
Fonction appelée pour chaque événement reçu par ce EventProcessorClient. L’entrée contient le contexte de partition et les données d’événement. Si le temps d’attente maximal est défini, la réception attendra cette durée pour recevoir un événement et si aucun événement n’est reçu, le consommateur sera appelé avec des données d’événement null.
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.
EventProcessorClient eventProcessorClient = new EventProcessorClientBuilder()
.consumerGroup(EventHubClientBuilder.DEFAULT_CONSUMER_GROUP_NAME)
.checkpointStore(new SampleCheckpointStore())
.processEventBatch(eventBatchContext -> {
eventBatchContext.getEvents().forEach(eventData -> {
System.out.printf("Partition id = %s and sequence number of event = %s%n",
eventBatchContext.getPartitionContext().getPartitionId(),
eventData.getSequenceNumber());
});
}, 50, Duration.ofSeconds(30))
.processError(errorContext -> {
System.out.printf("Error occurred in partition processor for partition %s, %s%n",
errorContext.getPartitionContext().getPartitionId(),
errorContext.getThrowable());
})
.buildEventProcessorClient();
Parameters:
Returns:
processPartitionClose
public EventProcessorClientBuilder processPartitionClose(Consumer
Fonction appelée lorsqu’un traitement d’une partition s’arrête. L’entrée contient les informations de partition, ainsi que la raison de l’arrêt du traitement des événements pour cette partition.
Parameters:
Returns:
processPartitionInitialization
public EventProcessorClientBuilder processPartitionInitialization(Consumer
Fonction appelée avant le début du traitement pour une partition. L’entrée contient les informations de partition ainsi qu’une position de départ par défaut pour le traitement des événements qui seront utilisés dans le cas d’un point de contrôle non disponible dans CheckpointStore. Les utilisateurs peuvent mettre à jour cette position si une autre position de départ est recommandée.
Parameters:
Returns:
proxyOptions
public EventProcessorClientBuilder proxyOptions(ProxyOptions proxyOptions)
Définit la configuration du proxy à utiliser pour EventHubAsyncClient. Lorsqu’un proxy est configuré, AMQP_WEB_SOCKETS doit être utilisé pour le type de transport.
Parameters:
Returns:
retry
@Deprecated
public EventProcessorClientBuilder retry(AmqpRetryOptions retryOptions)
Déprécié
Définit la stratégie de nouvelle tentative pour EventHubAsyncClient. Si elles ne sont pas spécifiées, les options de nouvelle tentative par défaut sont utilisées.
Parameters:
Returns:
retryOptions
public EventProcessorClientBuilder retryOptions(AmqpRetryOptions retryOptions)
Définit la stratégie de nouvelle tentative pour EventHubAsyncClient. Si elles ne sont pas spécifiées, les options de nouvelle tentative par défaut sont utilisées.
Parameters:
Returns:
trackLastEnqueuedEventProperties
public EventProcessorClientBuilder trackLastEnqueuedEventProperties(boolean trackLastEnqueuedEventProperties)
Définit si le processeur d’événements doit demander ou non des informations sur le dernier événement mis en file d’attente sur sa partition associée et suivre ces informations à mesure que les événements sont reçus.
Lorsque des informations sur le dernier événement mis en file d’attente de la partition sont suivies, chaque événement reçu du service Event Hubs contient des métadonnées sur la partition qu’il ne serait pas autrement. Cela se traduit par une faible consommation supplémentaire de bande passante réseau qui est généralement un compromis favorable lorsqu’on l’envisage par rapport à l’envoi périodique de demandes de propriétés de partition à l’aide du client Event Hub.
Parameters:
true
si les événements résultants effectuent le suivi des dernières informations en file d’attente pour cette partition ; false
Sinon.
Returns:
transportType
public EventProcessorClientBuilder transportType(AmqpTransportType transport)
Définit le type de transport par lequel toutes les communications avec Azure Event Hubs se produisent. La valeur par défaut est AMQP.
Parameters:
Returns:
S’applique à
Azure SDK for Java