Partager via


Azure Event Hubs bibliothèque cliente Checkpoint Store pour Java - version 1.0.0-beta.2

utilisation de la bibliothèque cliente Jedis pour Redis

Azure Event Hubs magasin de points de contrôle peut être utilisé pour stocker des points de contrôle lors du traitement des événements de Azure Event Hubs. Ce package utilise Redis comme magasin persistant pour la gestion des points de contrôle et des informations de propriété de partition. Le JedisRedisCheckpointStore fourni dans ce package peut être connecté à EventProcessorClient.

Code source| Documentation de référence de l’API | Documentation du produit | Exemples

Prise en main

Prérequis

Inclure le package

Inclure le fichier de nomenclature

Incluez le kit azure-sdk-bom à votre projet pour qu’il soit dépendant de la version disponibilité générale (GA) de la bibliothèque. Dans l’extrait de code suivant, remplacez l’espace réservé {bom_version_to_target} par le numéro de version. Pour en savoir plus sur la nomenclature, consultez LE FICHIER README DE NOMENCLATURE DU KIT DE DÉVELOPPEMENT LOGICIEL AZURE.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

puis incluez la dépendance directe dans la section dépendances sans la balise de version comme indiqué ci-dessous.

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-eventhubs-checkpointstore-jedis</artifactId>
  </dependency>
</dependencies>

Inclure une dépendance directe

Si vous souhaitez prendre la dépendance sur une version particulière de la bibliothèque qui n’est pas présente dans la nomenclature, ajoutez la dépendance directe à votre projet comme suit.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-eventhubs-checkpointstore-jedis</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Authentifier le client de conteneur de stockage

Pour créer un instance de JedisCheckpointStore, un JedisPool objet doit être créé. Pour créer cet JedisPool objet, un nom d’hôte String et une clé primaire String sont requis. Vous pouvez les utiliser comme indiqué ci-dessous pour créer un JedisPool objet.

Concepts clés

Les concepts clés sont expliqués en détail ici.

Exemples

Créer un instance de JedisPool

Pour créer une instance de JedisPool à l’aide du cache Redis Azure, suivez les instructions de la section Utiliser Azure Cache pour Redis dans Java pour récupérer le nom d’hôte et la clé d’accès. Sinon, utilisez les informations de connexion d’un instance Redis en cours d’exécution.

JedisClientConfig clientConfig = DefaultJedisClientConfig.builder()
    .password("<YOUR_REDIS_PRIMARY_ACCESS_KEY>")
    .ssl(true)
    .build();

String redisHostName = "<YOUR_REDIS_HOST_NAME>.redis.cache.windows.net";
HostAndPort hostAndPort = new HostAndPort(redisHostName, 6380);
JedisPool jedisPool = new JedisPool(hostAndPort, clientConfig);

// Do things with JedisPool.

// Finally, dispose of resource
jedisPool.close();

Consommer des événements à l’aide d’un client de processeur d’événements

Pour consommer des événements pour toutes les partitions d’un Event Hub, vous allez créer un EventProcessorClient pour un groupe de consommateurs spécifique. Lorsqu’un Event Hub est créé, il fournit un groupe de consommateurs par défaut qui peut être utilisé pour commencer.

délègue EventProcessorClient le traitement des événements à une fonction de rappel que vous fournissez, ce qui vous permet de vous concentrer sur la logique nécessaire pour fournir de la valeur tandis que le processeur est responsable de la gestion des opérations de consommation sous-jacentes.

Dans notre exemple, nous allons nous concentrer sur la création de EventProcessor, utiliser la JedisRedisCheckpointStorefonction de rappel simple et pour traiter les événements reçus à partir d’Event Hubs, écrire dans la console et mettre à jour le point de contrôle dans Stockage Blob après chaque événement.

JedisClientConfig clientConfig = DefaultJedisClientConfig.builder()
    .password("<YOUR_REDIS_PRIMARY_ACCESS_KEY>")
    .ssl(true)
    .build();

String redisHostName = "<YOUR_REDIS_HOST_NAME>.redis.cache.windows.net";
HostAndPort hostAndPort = new HostAndPort(redisHostName, 6380);
JedisPool jedisPool = new JedisPool(hostAndPort, clientConfig);

EventProcessorClient eventProcessorClient = new EventProcessorClientBuilder()
    .consumerGroup("<< CONSUMER GROUP NAME >>")
    .connectionString("<< EVENT HUB NAMESPACE CONNECTION STRING >>")
    .eventHubName("<< EVENT HUB NAME >>")
    .checkpointStore(new JedisCheckpointStore(jedisPool))
    .processEvent(eventContext -> {
        System.out.println("Partition id = " + eventContext.getPartitionContext().getPartitionId() + " and "
            + "sequence number of event = " + eventContext.getEventData().getSequenceNumber());
    })
    .processError(context -> {
        System.out.println("Error occurred while processing events " + context.getThrowable().getMessage());
    })
    .buildEventProcessorClient();

// This will start the processor. It will start processing events from all partitions.
eventProcessorClient.start();

// (for demo purposes only - adding sleep to wait for receiving events)
// Your application will probably keep the eventProcessorClient alive until the program ends.
TimeUnit.SECONDS.sleep(2);

// When the user wishes to stop processing events, they can call `stop()`.
eventProcessorClient.stop();

// Dispose of JedisPool resource.
jedisPool.close();

Dépannage

Activer la journalisation du client

Le Kit de développement logiciel (SDK) Azure pour Java offre une journalisation cohérente pour aider à résoudre les erreurs d’application et à accélérer leur résolution. Les journaux produits capturent le flux d’une application avant d’atteindre l’état terminal pour faciliter la localisation du problème racine. Consultez le wiki de journalisation pour obtenir des conseils sur l’activation de la journalisation.

Étapes suivantes

Commencez par explorer les exemples ici.

Contribution

Si vous souhaitez devenir un contributeur actif à ce projet, consultez nos Lignes directrices sur les contributions pour plus d’informations.