Créer un hub d’événements à l’aide d’Azure CLI.

Effectué

Votre équipe prend la décision d’utiliser les fonctionnalités d’Azure Event Hubs pour gérer et traiter les volumes de transactions de plus en plus élevés transitant par votre système.

Un hub d’événements est une ressource Azure : la première étape consiste donc à créer un hub dans Azure et à le configurer pour répondre aux besoins spécifiques de vos applications.

Nouveautés des concentrateurs d'événements Azure ?

Azure Event Hubs est un service cloud de traitement d’événements capable de recevoir et de traiter des millions d’événements par seconde. Event Hubs joue le rôle de porte d’entrée d’un pipeline d’événements : il reçoit les données entrantes et les stocke jusqu’à ce que les ressources de traitement soient disponibles.

Une entité qui envoie des données à votre hub d’événements est appelée éditeur, et une entité qui lit les données depuis un hub d’événements est appelée consommateur ou abonné. Votre hub d’événements se trouve entre l’éditeur et l’abonné afin de diviser la production (de l’éditeur) et la consommation (vers l’abonné) d’un flux de données d’événement. Ce découplage aide à gérer les scénarios où le taux de production d’événements est considérablement plus élevé que la consommation. L’illustration suivante montre le rôle d’un Event Hub.

An illustration showing an Azure event hub placed between four publishers and two subscribers. The event hub receives multiple events from the publishers, serializes the events into data streams, and makes the data streams available to subscribers.

Événements

Un événement est un petit paquet d’informations (un datagramme) qui contient une notification. Les événements peuvent être publiés individuellement ou par lot, mais une publication (individuelle ou par lot) ne peut pas dépasser 1 Mo.

Éditeurs et abonnés

Les éditeurs d’événements sont des applications ou des appareils capables d’envoyer des événements en utilisant HTTPS, AMQP 1.0 ou Apache Kafka.

  • Pour les éditeurs qui envoient fréquemment des données, le protocole AMQP offre les meilleures performances. Toutefois, celui-ci présente une surcharge de session initiale plus élevée, car un socket bidirectionnel persistant et la sécurité TLS, ou SSL/TLS, doivent être configurés au préalable.
  • Pour les envois de données intermittents, le protocole HTTPS est la meilleure option. Même si HTTPS nécessite une surcharge supplémentaire pour chaque requête, il n’y a pas de surcharge liée à l’initialisation de la session.
  • Event Hubs fournit un point de terminaison compatible avec les API de producteur et de consommateur Apache Kafka que la plupart des applications clientes Apache Kafka existantes peuvent utiliser comme alternative à l’exécution de votre propre cluster Apache Kafka. Event Hubs prend en charge les clients d'API de producteur et de consommateur Apache Kafka à partir de la version 1.0. Pour plus d’informations, consultez Event Hubs pour Apache Kafka.

Les abonnés aux événements sont des applications qui utilisent une des deux méthodes programmatiques prises en charge pour recevoir et traiter les événements provenant d’un hub d’événements.

  • EventHubReceiver : méthode simple qui fournit des options de gestion limitées.
  • EventProcessorHost : méthode efficace que nous utilisons plus loin dans ce module.

Groupes de consommateurs

Un groupe de consommateurs de hub d’événements représente une vue spécifique d’un flux de données de hub d’événements. Quand vous utilisez des groupes de consommateurs distincts, plusieurs applications abonnées peuvent traiter un flux de données d’événement indépendamment, sans affecter les autres applications. Toutefois, l’utilisation de nombreux groupes de consommateurs n’est pas obligatoire, et pour de nombreuses applications, le groupe de consommateurs par défaut est suffisant.

Tarif

Il existe quatre niveaux tarifaires pour Azure Event Hubs : De base, Standard, Premium et Dédié. Les niveaux diffèrent en ce qui concerne les connexions prises en charge, le nombre de groupes de consommateurs disponibles et le débit. Quand vous utilisez Azure CLI pour créer un espace de noms Event Hubs, si vous ne spécifiez pas de niveau tarifaire, la valeur par défaut Standard (20 groupes de consommateurs, 1000 connexions réparties) est affectée. Pour connaître les principales différences entre ces niveaux, consultez Azure Event Hubs - Tarification.

Créer et configurer un hub d’événements

La création d’un hub d’événements comprend deux étapes principales. La première étape consiste à définir l’espace de noms Event Hubs. La deuxième étape consiste à créer un hub d’événements dans cet espace de noms.

Définir un espace de noms Event Hubs

Un espace de noms Event Hubs est un conteneur pour la gestion d’un ou de plusieurs hubs d’événements. La création d’un espace de noms Event Hubs implique généralement la configuration suivante :

Définir les paramètres au niveau de l’espace de noms

La capacité de l’espace de noms (configurée avec des unités de débit pour le niveau Standard), le niveau tarifaire et les métriques de performances sont définis au niveau de l’espace de noms. Ces paramètres sont applicables à tous les hubs d’événements compris dans cet espace de noms. Si vous ne définissez pas ces paramètres, une valeur par défaut est utilisée : 1 pour la capacité et Standard pour le niveau tarifaire.

Gardez à l’esprit les éléments suivants :

  • Vous devez trouver un compromis entre votre configuration et vos attentes en matière de budget Azure.

  • Vous pourriez envisager de configurer différents hubs d’événements pour différents besoins en matière de débit. Par exemple, si vous avez une application de données de ventes et si vous prévoyez deux hubs d’événements, il est judicieux d’utiliser un espace de noms distinct pour chaque hub.

    Vous configurez un espace de noms pour la collecte à haut débit des données de vente en temps réel, ainsi qu’un espace de noms pour la collecte peu fréquente des journaux des événements. Ainsi, vous devez uniquement configurer (et payer) la capacité de débit élevé sur le hub de données de vente en temps réel.

    1. Sélection d’un nom unique pour l’espace de noms. L’espace de noms est accessible par le biais de cette URL : espace de noms.servicebus.windows.net

    2. Définissez les propriétés facultatives suivantes :

      • Rendre cette zone d’espace de noms redondante. La redondance de zone réplique les données dans des centres de données distincts disposant de leur propres infrastructures d’alimentation, de réseau et de refroidissement.

      • Activez le scale-up automatique des unités de débit (niveau Standard). L’augmentation automatique fournit une option de scale-up automatique en augmentant le nombre d’unités de débit jusqu’à une valeur maximale. Cette option est utile pour éviter les limitations dans les situations où les débits de données entrants ou sortants dépassent le nombre d’unités de débit défini actuellement.

Commandes Azure CLI pour créer un espace de noms Event Hubs

Pour créer un espace de noms Event Hubs, utilisez des commandes az eventhubs namespace. Voici une brève description des commandes que nous utilisons dans l’exercice.

Commande Description
create Crée un espace de noms Event Hubs.
authorization-rule Tous les hubs d’événements contenus dans un même espace de noms partagent les mêmes informations d’identification de connexion. Vous avez besoin de ces informations d’identification quand vous configurez des applications pour qu’elles envoient et reçoivent des messages à l’aide du hub d’événements. Cette commande retourne la chaîne de connexion pour votre espace de noms Event Hubs.

Configurer un nouveau hub d’événements

Une fois un espace de noms Event Hubs créé, vous pouvez créer un hub d’événements. Lorsque vous créez un hub d’événements, plusieurs paramètres sont obligatoires.

Les paramètres suivants sont nécessaires pour créer un hub d’événements :

  • Nom du hub d’événements : nom de hub d’événements qui est unique dans votre abonnement et :
    • Comporte entre 1 et 50 caractères.
    • Contient uniquement des lettres, des chiffres, des points, des traits d’union et des traits de soulignement.
    • Commence et se termine par une lettre ou un chiffre.
  • Nombre de partitions : nombre de partitions nécessaires dans un hub d’événements (entre 2 et 32 pour le niveau Standard). Le nombre de partitions doit être directement lié au nombre attendu de consommateurs simultanés et ne peut pas être modifié après la création du hub. La partition sépare le flux de message, afin que les applications consommatrices ou réceptrices n’aient besoin de lire qu’un sous-ensemble du flux de données. Si vous ne définissez pas ce paramètre, la valeur par défaut sera de 4.
  • Conservation des messages : nombre de jours (de 1 à 7 pour le niveau Standard) pendant lesquels les messages restent disponibles, si le flux de données doit être relu pour une raison ou une autre. Si vous ne définissez pas ce paramètre, sa valeur par défaut sera de 7.

Vous pouvez éventuellement configurer un hub d’événements pour qu’il diffuse des données vers le Stockage Blob Azure ou Azure Data Lake Storage.

Commandes Azure CLI pour créer un hub d’événements

Pour créer un hub d’événements avec Azure CLI, vous utilisez le jeu de commandes az eventhubs eventhub. Voici une brève description des commandes que nous utilisons dans l’exercice.

Commande Description
create Crée le hub d’événements dans un espace de noms spécifié.
show Affiche les détails de votre hub d’événements.

Notes

Pour connaître les quotas et les limites des différents niveaux d’Event Hubs, consultez Quotas et limites d’Azure Event Hubs.

Récapitulatif

Pour déployer Azure Event Hubs, vous devez configurer un espace de noms Event Hubs, puis configurer le hub d’événements proprement dit. Dans l’unité suivante, vous parcourez les étapes détaillées pour créer un espace de noms et un hub d’événements.