ApsaraMQ for Kafka est un service entièrement géré basé sur Apache Kafka. Cette rubrique décrit l'architecture du cluster et le modèle de publication-abonnement.
Architecture du cluster
Un cluster ApsaraMQ for Kafka se compose de quatre éléments : les producteurs, les brokers, ZooKeeper et les groupes de consommateurs.
Architecture d'ApsaraMQ for Kafka 
-
Producer
Le producteur publie des messages dans les topics du cluster. Ces messages transportent généralement des données applicatives, telles que des événements de consultation de pages, des journaux serveur et des métriques système comme l'utilisation du CPU et de la mémoire.
-
Broker
Le broker est un serveur qui assure la persistance et la diffusion des messages, à l'instar d'un nœud dans une base de données distribuée. Les brokers permettent une mise à l'échelle horizontale : l'ajout de brokers augmente le débit du cluster.
-
Consumer group
Le groupe de consommateurs (affiché sous le nom Group dans la console ApsaraMQ for Kafka) extrait les messages des brokers pour consommer les données des topics auxquels il est abonné.
-
ZooKeeper
ZooKeeper coordonne le cluster : il gère la configuration, élit le leader de partition et rééquilibre la charge lors des changements d'appartenance aux groupes de consommateurs.
Modèle de publication-abonnement
ApsaraMQ for Kafka repose sur le modèle de publication-abonnement. Les producteurs publient des messages dans des topics, tandis que les groupes de consommateurs s'y abonnent pour les traiter.
Modèle de publication-abonnement d'ApsaraMQ for Kafka 
Les topics et les groupes de consommateurs entretiennent une relation plusieurs-à-plusieurs :
Un groupe de consommateurs peut s'abonner à plusieurs topics.
Plusieurs groupes de consommateurs peuvent consommer un même topic simultanément.
Au sein d'un groupe de consommateurs, chaque message issu d'un topic abonné est remis à un seul consommateur du groupe.