什么是Kafka
消息隊列的一種订讼,類似的還有RabbitMQ欺殿,RocketMQ。
幾個概念
- 生產(chǎn)者:產(chǎn)生消息脖苏,并發(fā)送到指定主題。
- 消費者:從主題中拉取消息并消費恃鞋。
- 主題(topic):用于管理一類消息亦歉,邏輯劃分。
- 分區(qū):主題可以由一個或多個分區(qū)組成水由,這是實際的物理劃分赛蔫。
- 緩存代理(broker):用來管理消息的服務(wù)器泥张,一個主題可以有多個分區(qū)鞠值,每個分區(qū)可以分布在不同的broker上,因此一個分區(qū)也可以有多個不同主題的分區(qū)筝野。
- 集群:集群中包含多個broker粤剧。
- 偏移量(offset):每個消息在分區(qū)內(nèi)的編號,用來區(qū)分不同的消息焕议。
- 組(group):每個消費者都必須指定一個組弧关,組不用創(chuàng)建,直接指定就可以了别瞭。我們可以利用組來實現(xiàn)單播和多播株憾,因為一個消息只能被一個組拉取一次。
- 復制:分區(qū)可以進行復制墙歪,分布在多個broker上,提高了容錯性贝奇。
- 領(lǐng)導者虹菲、追隨者:當這些broker都可以用時,選擇其中一個broker里的分區(qū)作為leader掉瞳,其他作為follower毕源。leader負責提供服務(wù),follower只用來復制備份陕习。
Kafka優(yōu)點都有啥
- 高吞吐量霎褐,能處理大量數(shù)據(jù)。
- 低延遲衡查。
- 容錯性好瘩欺,集群中一個節(jié)點異常不影響整個系統(tǒng)必盖。
- 耐久性好拌牲,數(shù)據(jù)可以復制不會丟失俱饿。