O ApsaraMQ for Kafka é um serviço totalmente gerenciado, desenvolvido com base no Apache Kafka. Este tópico descreve a arquitetura de cluster e o modelo de publicação-assinatura.
Arquitetura de cluster
Um cluster do ApsaraMQ for Kafka tem quatro componentes: produtores, brokers, ZooKeeper e grupos de consumidores.
Arquitetura do ApsaraMQ for Kafka 
-
Producer
O produtor publica mensagens em tópicos do cluster. Essas mensagens geralmente contêm dados de aplicações, como eventos de visualização de página, logs de servidor e métricas de sistema (utilização de CPU e uso de memória).
-
Broker
O broker é um servidor que persiste e fornece mensagens, semelhante a um nó em um banco de dados distribuído. Os brokers permitem dimensionamento horizontal: adicionar brokers aumenta o throughput do cluster.
-
Consumer group
O grupo de consumidores (exibido como Group no console do ApsaraMQ for Kafka) busca mensagens nos brokers para consumir dados dos tópicos assinados.
-
ZooKeeper
O ZooKeeper coordena o cluster: gerencia a configuração, elege a partição líder e reequilibra a carga quando há alterações na composição do grupo de consumidores.
Modelo de publicação-assinatura
O ApsaraMQ for Kafka utiliza o modelo de publicação-assinatura. Os produtores publicam mensagens em tópicos e os grupos de consumidores assinam esses tópicos para receber as mensagens.
Modelo de publicação-assinatura do ApsaraMQ for Kafka 
Tópicos e grupos de consumidores têm uma relação de muitos para muitos:
Um grupo de consumidores pode assinar vários tópicos.
Vários grupos de consumidores podem consumir o mesmo tópico simultaneamente.
Em um grupo de consumidores, cada mensagem de um tópico assinado é entregue a exatamente um consumidor do grupo.