Kafka常见名词
Broker MQ服務(wù)器端 構(gòu)建一個(gè)kafka服務(wù) 多個(gè)Broker 多個(gè)kafka集群。
Producer: 生產(chǎn)者:向Broker中投遞消息
Consumer:消費(fèi)者:從mq服務(wù)器端Broker 當(dāng)中獲取消息。
Consumer Group: 消費(fèi)者組 在同一個(gè)消費(fèi)者組中是不能夠消費(fèi)同一個(gè)分區(qū)中消息的,
在多個(gè)不同的消費(fèi)者組中,多個(gè)不同消費(fèi)者可以消費(fèi)到同一條消息。
Topic: 主題:存放消息的隊(duì)列分類(lèi) 根據(jù)業(yè)務(wù)來(lái)實(shí)現(xiàn)分類(lèi) 比如郵件主題、短信主題、優(yōu)惠券的主題,邏輯概念。
Partition: 分區(qū)存放消息 一個(gè)topic分成多個(gè)不同區(qū)域存放起來(lái) 目的是為了后期消費(fèi)者能夠?qū)崿F(xiàn)擴(kuò)展性。
Replica: 副本數(shù)據(jù)
Offset:標(biāo)記我們消費(fèi)者消費(fèi)的位置。
在kafka中不管消費(fèi)者消費(fèi)成功還是失敗,實(shí)際上該消息不會(huì)立馬被刪除,都是后期通過(guò)定時(shí)任務(wù)刪除消息, 通過(guò)offset值可以靈活獲取到以前已經(jīng)被消費(fèi)的消息。
ZooKeeper: brokers、topics信息都會(huì)存放在zk上。
Leader:
Follower:
Producer:消息生產(chǎn)者,向 Kafka Broker 發(fā)消息的客戶(hù)端。
Consumer:消息消費(fèi)者,從 Kafka Broker 取消息的客戶(hù)端。
Consumer Group:消費(fèi)者組(CG),消費(fèi)者組內(nèi)每個(gè)消費(fèi)者負(fù)責(zé)消費(fèi)不同分區(qū)的數(shù)據(jù),提高消費(fèi)能力。一個(gè)分區(qū)只能由組內(nèi)一個(gè)消費(fèi)者消費(fèi),消費(fèi)者組之間互不影響。所有的消費(fèi)者都屬于某個(gè)消費(fèi)者組,即消費(fèi)者組是邏輯上的一個(gè)訂閱者。
Broker:一臺(tái) Kafka 機(jī)器就是一個(gè) Broker。一個(gè)集群由多個(gè) Broker 組成。一個(gè) Broker 可以容納多個(gè) Topic。
Topic:可以理解為一個(gè)隊(duì)列,Topic 將消息分類(lèi),生產(chǎn)者和消費(fèi)者面向的是同一個(gè) Topic。
Partition:為了實(shí)現(xiàn)擴(kuò)展性,提高并發(fā)能力,一個(gè)非常大的 Topic 可以分布到多個(gè) Broker (即服務(wù)器)上,一個(gè) Topic 可以分為多個(gè) Partition,每個(gè) Partition 是一個(gè) 有序的隊(duì)列。
Replica:副本,為實(shí)現(xiàn)備份的功能,保證集群中的某個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),該節(jié)點(diǎn)上的 Partition 數(shù)據(jù)不丟失,且 Kafka 仍然能夠繼續(xù)工作,Kafka 提供了副本機(jī)制,一個(gè) Topic 的每個(gè)分區(qū)都有若干個(gè)副本,一個(gè) Leader 和若干個(gè) Follower。
Leader:每個(gè)分區(qū)多個(gè)副本的“主”副本,生產(chǎn)者發(fā)送數(shù)據(jù)的對(duì)象,以及消費(fèi)者消費(fèi)數(shù)據(jù)的對(duì)象,都是 Leader。
Follower:每個(gè)分區(qū)多個(gè)副本的“從”副本,實(shí)時(shí)從 Leader 中同步數(shù)據(jù),保持和 Leader 數(shù)據(jù)的同步。Leader 發(fā)生故障時(shí),某個(gè) Follower 還會(huì)成為新的 Leader。
Offset:消費(fèi)者消費(fèi)的位置信息,監(jiān)控?cái)?shù)據(jù)消費(fèi)到什么位置,當(dāng)消費(fèi)者掛掉再重新恢復(fù)的時(shí)候,可以從消費(fèi)位置繼續(xù)消費(fèi)。
ZooKeeper:Kafka 集群能夠正常工作,需要依賴(lài)于 ZooKeeper,ZooKeeper 幫助 Kafka 存儲(chǔ)和管理集群信息。
總結(jié)
- 上一篇: Kafka设计原理
- 下一篇: 注解@CrossOrigin解决跨域问题