目錄
正文
系列目錄
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 每秒...