kafka原理和實踐(一)原理 10分鐘入門

2021-08-18 12:46:44 字數 1770 閱讀 1282

目錄

正文

系列目錄

kafka原理和實踐(一)原理:10分鐘入門

kafka原理和實踐(二)spring-kafka簡單實踐

kafka原理和實踐(三)spring-kafka生產者原始碼

kafka原理和實踐(四)spring-kafka消費者原始碼

kafka原理和實踐(五)spring-kafka配置詳解

kafka原理和實踐(六)總結昇華

*****====正文分割線***************

關於kafka原理網上文章很多,但能真正快速入門的幾乎沒有(要不就是原文翻譯官網...實在枯燥無味之極),本章盡量採用**的方式,提綱挈領的闡述原理。

回到頂部

1.producers:訊息生產者,push訊息給brokers.傳送時根據不同topic選擇不同分割槽(在broker上)。

2.brokers:註冊在zookeeper節點上。

3.consumers:訊息消費者,從brokers上根據訂閱的topic選擇不同分割槽,poll資料,執行消費。

回到頂部

1.producer:訊息生產者,發布訊息到 kafka 集群的終端或服務。

2.broker:kafka 集群中包含的伺服器。

3.topic:每條發布到 kafka 集群的訊息屬於的類別,即 kafka 是面向 topic 的。

4.partition:partition 是物理上的概念,每個 topic 包含乙個或多個 partition。kafka 分配的單位是 partition。

5.consumer:從 kafka 集群中消費訊息的終端或服務。

6.consumer group:high-level consumer api 中,每個 consumer 都屬於乙個 consumer group,每條訊息只能被 consumer group 中的乙個 consumer 消費,但可以被多個 consumer group 消費。

7.replica:partition 的副本,保障 partition 的高可用。

8.leader:replica 中的乙個角色, producer 和 consumer 只跟 leader 互動。

9.follower:replica 中的乙個角色,從 leader 中複製資料。

10.controller:kafka 集群中的其中乙個伺服器,用來進行 leader election 以及 各種 failover。

11.zookeeper:kafka 通過 zookeeper 來儲存集群的 meta 資訊。

回到頂部

kafka生產者多執行緒非同步傳送模型如下圖,主要包含2個流程:1)資料批量儲存,批量傳送2)netty nio 傳送資料

大概看一下流程,理解個大概即可,具體見後續原始碼分析章節。

回到頂部

根據xml配置的不同啟動不同的容器(concurrentmessagelistenercontainer/messagelistenercontainer),下圖為併發訊息***容器啟動流程,主要包含2個主流程:

1.從cluster拉取訊息

2.消費訊息

Kafka介紹和原理

簡而言之,kafka是一種mq,現在有很多開源的mq,包括activemq,rokectmq,rabbitmq和kafka等等。還有些大型網際網路公司內部不開源的mq,比如阿里巴巴的metaq,京東的jmq等等。kafka是強依賴於zookeeper的,所以,如果想深入了解kafka,需要熟悉zoo...

configmap原理和實踐

原理 kubernetes通過configmap來實現對容器中應用的配置管理,configmap api資源儲存配置資料的鍵值對,可以在pods中使用或者可以用於儲存系統元件的配置資料。簡單的說也就是,configmap是kubernetes的一種資源,configmap可用於儲存細粒度資訊如單個屬...

kafka原理和集群配置

可靠性 kafka是分布式 分割槽 複製和容錯的 可擴充套件性 kafka訊息傳遞系統輕鬆縮放,無需停機 耐用性 kafka使用分布式提交日誌,這意味著訊息會盡可能快地保留在磁碟上,因此它是持久的 高效能 kafka對於發布和訂閱訊息都具有高吞吐量,kafka每秒可以生產約25萬訊息 50mb 每秒...