怎樣讓自己的網(wǎng)站被收錄軟文營(yíng)銷文章案例
目錄
Kafka 架構(gòu)
Kafka 工作原理
Kafka 數(shù)據(jù)流
Kafka 核心特性
總結(jié)
Kafka 架構(gòu)
1. 生產(chǎn)者(Producer)
2. 消費(fèi)者(Consumer)
3. 主題(Topic)
4. 分區(qū)(Partition)
5. 副本(Replica)
6. 代理(Broker)
7. ZooKeeper(舊版本)/KRaft(新版本)
Kafka 工作原理
1. 消息生產(chǎn)
2. 消息存儲(chǔ)
3. 消息消費(fèi)
4. 領(lǐng)導(dǎo)者選舉
5. 集群協(xié)調(diào)
Kafka 架構(gòu)
Kafka 是一個(gè)分布式流處理平臺(tái),核心架構(gòu)包括以下組件:
-
Producer(生產(chǎn)者):
-
負(fù)責(zé)將消息發(fā)布到 Kafka 的 Topic 中。
-
-
Consumer(消費(fèi)者):
-
從 Topic 訂閱并消費(fèi)消息。
-
-
Broker(服務(wù)器):
-
Kafka 集群中的每個(gè)節(jié)點(diǎn)都是一個(gè) Broker,負(fù)責(zé)消息的存儲(chǔ)和轉(zhuǎn)發(fā)。
-
-
Topic(主題):
-
消息的邏輯分類,生產(chǎn)者將消息發(fā)送到特定 Topic,消費(fèi)者從 Topic 訂閱消息。
-
-
Partition(分區(qū)):
-
每個(gè) Topic 可以分為多個(gè) Partition,分區(qū)是 Kafka 并行處理的基本單位,每個(gè)分區(qū)是一個(gè)有序、不可變的消息序列。
-
-
Replica(副本):
-
每個(gè) Partition 可以有多個(gè)副本,分布在不同的 Broker 上,確保數(shù)據(jù)的高可用性和容錯(cuò)性。
-
-
Leader 和 Follower:
-
每個(gè) Partition 有一個(gè) Leader 副本和多個(gè) Follower 副本,Leader 負(fù)責(zé)處理讀寫請(qǐng)求,F(xiàn)ollower 從 Leader 同步數(shù)據(jù)。
-
-
Zookeeper:
-
用于管理 Kafka 集群的元數(shù)據(jù)、Broker 狀態(tài)、Leader 選舉等。
-
Kafka 工作原理
-
消息發(fā)布:
-
Producer 將消息發(fā)送到指定的 Topic,消息根據(jù)分區(qū)策略(如輪詢、哈希等)分配到某個(gè) Partition。
-
-
消息存儲(chǔ):
-
消息以追加(Append)的方式寫入 Partition 的日志文件(Log Segment),Kafka 不會(huì)修改或刪除已寫入的消息。
-
-
消息復(fù)制:
-
Leader Partition 將消息復(fù)制到所有 Follower Partition,確保數(shù)據(jù)冗余和高可用性。
-
-
消息消費(fèi):
-
Consumer 從 Partition 拉取消息,每個(gè) Consumer 屬于一個(gè) Consumer Group,組內(nèi)的 Consumer 共同消費(fèi)一個(gè) Topic 的消息,每個(gè) Partition 只能被組內(nèi)的一個(gè) Consumer 消費(fèi)。
-
-
Offset 管理:
-
Consumer 通過(guò) Offset 記錄消費(fèi)進(jìn)度,Kafka 將 Offset 存儲(chǔ)在內(nèi)部 Topic(
__consumer_offsets
)中,確保消費(fèi)狀態(tài)可恢復(fù)。
-
-
日志清理:
-
Kafka 提供兩種日志清理策略:
-
日志刪除(Log Retention):根據(jù)時(shí)間或大小刪除舊數(shù)據(jù)。
-
日志壓縮(Log Compaction):保留每個(gè) Key 的最新值,適用于 Key-Value 場(chǎng)景。
-
-
-
高可用性:
-
通過(guò)副本機(jī)制和 Leader 選舉實(shí)現(xiàn)高可用性。如果 Leader 失效,Zookeeper 會(huì)從 ISR(In-Sync Repl
-