SDN控制器
一矾克、學(xué)習(xí)了SDN所涉及的DMQ(分布式消息隊列)
1.DMQ總體架構(gòu)
DMQ基于Kafka架構(gòu)建立晰洒,Kafka是一種分布式的线定,消息發(fā)布/訂閱系統(tǒng)罗岖,圖中包含了kafka架構(gòu)的主要的幾大部件。
a)Producer:消息的生產(chǎn)者诅蝶,把消息push到brokers
b)Brokers:說白了就是服務(wù)器集群退个,由zookeeper集群管理
c)Topic:每個topic邏輯上對應(yīng)一個隊列精肃,producer關(guān)心消息push到哪個Topic,consumer關(guān)心自己訂閱了哪個topic帜乞。
d)consumer
group和consumer:每個consumer屬于一個consumer group。發(fā)送到Topic的消息筐眷,只會被訂閱此Topic的每個group中的一個consumer消費(fèi)黎烈。
e)Partition:從吞吐率考慮,物理上把Topic分成一個或多個Partition匀谣,每個Partition在物理上對應(yīng)一個文件夾照棋,該文件夾下存儲這個Partition的所有消息和索引文件。
f)Replicas: partition的副本存在多個broker上武翎,用于備份烈炭。
g)Leader和follower:相當(dāng)于主從關(guān)系,producer和consumer只跟leader交互宝恶,follower通過從leader pull消息實(shí)現(xiàn)同步符隙。
h)Zookeeper:kafka通過zookeeper來存儲集群的meta信息。
2.DMQ使用Kafka的原因垫毙,Kafka的優(yōu)勢
Kafka優(yōu)勢:
l支持跨節(jié)點(diǎn)的訂閱/發(fā)布能力
l異步通信
l高可靠:數(shù)據(jù)備份機(jī)制霹疫、生產(chǎn)可靠(ACK機(jī)制、消息重傳機(jī)制)综芥、消息可靠
l高性能:批量發(fā)送丽蝎、異步落盤、順序?qū)懕P膀藐、Sendfile技術(shù)屠阻、分區(qū)技術(shù)
3.重點(diǎn)理解
lTopic是個邏輯概念,partition是個物理概念额各,一個Topic分成一個或多個Partition,當(dāng)producer發(fā)布消息時可以均勻分布到多個Partition国觉。這樣有利于提高吞吐率。
l消息是順序?qū)懭腚ㄟ^append的方式加入partition,這樣有利于告訴的提取消息蛉加。
lZookeeper總的來說是為了在各節(jié)點(diǎn)之間保證狀態(tài)同步,保證數(shù)據(jù)的可靠性和一致性缸逃。
lproducer和consumer直接關(guān)聯(lián)的是Topic针饥。
l一整個消息的發(fā)布和訂閱是異步進(jìn)行的,producer是push消息到partition需频,consumer是自己去fetch消息進(jìn)行處理的丁眼。
4.消息中間件的意義
消息中間件可以支持和保障分布式程序之間同步和異步收發(fā)消息,在SDN控制器中昭殉,大AC和小AC組成了一個分布式應(yīng)用程序苞七,消息中間件保證了組件之間可靠的異步通信藐守,降低了大小AC之間的耦合度,從而提高了系統(tǒng)的可用和擴(kuò)展性蹂风。