產(chǎn)品架構(gòu)
本文介紹云消息隊(duì)列 Kafka 版的系統(tǒng)架構(gòu)和發(fā)布/訂閱模型。
云消息隊(duì)列 Kafka 版系統(tǒng)架構(gòu)
如云消息隊(duì)列 Kafka 版的系統(tǒng)架構(gòu)所示,一個(gè)云消息隊(duì)列 Kafka 版集群包括Producer、Kafka Broker、Group、ZooKeeper。
Producer
通過(guò)push模式向云消息隊(duì)列 Kafka 版的Kafka Broker發(fā)送消息。發(fā)送的消息可以是網(wǎng)站的頁(yè)面訪問(wèn)、服務(wù)器日志,也可以是CPU和內(nèi)存相關(guān)的系統(tǒng)資源信息。
Kafka Broker
用于存儲(chǔ)消息的服務(wù)器。Kafka Broker支持水平擴(kuò)展。Kafka Broker節(jié)點(diǎn)的數(shù)量越多,云消息隊(duì)列 Kafka 版集群的吞吐率越高。
Group
通過(guò)pull模式從云消息隊(duì)列 Kafka 版Broker訂閱并消費(fèi)消息。
Zookeeper
管理集群的配置、選舉leader分區(qū),并且在Group發(fā)生變化時(shí),進(jìn)行負(fù)載均衡。
云消息隊(duì)列 Kafka 版的發(fā)布/訂閱模型
如云消息隊(duì)列 Kafka 版的發(fā)布/訂閱模型所示,云消息隊(duì)列 Kafka 版采用發(fā)布/訂閱模型。
Group和Topic的對(duì)應(yīng)關(guān)系是N : N,即一個(gè)Group可以同時(shí)訂閱多個(gè)Topic,一個(gè)Topic也可以被多個(gè)Group同時(shí)訂閱。
雖然一個(gè)Topic可以被多個(gè)Group同時(shí)訂閱,但該Topic的消息只能被同一個(gè)Group內(nèi)的任意一個(gè)Consumer消費(fèi)。