kafka 簡單理解 - Partition的讀和寫


1.kafka所采用的設計方式,盤子就是partition,每個人就是一個consumer,每個蘋果就是一條message。辦法三每個盤子中蘋果的消費是有序的,而辦法二的消費是完全無序的

第二種方法:

 

第三種方法:

 

2.Partition的讀和寫

 我們知道topic下划分了多個partition,消息的生產和消費最終都是發生在partition之上。下圖是一個三個partition的topic的讀寫示意

 

 我們先看右邊的producer,可以看到寫的時候,采用round-robin算法,輪詢往每個partition寫入。

而在消費者端,每個consumer都維護一個offset值,指向的是它所消費到的消息坐標。

我們先看group A的三個consumer,他們分別獨立消費不同的三個partition。每個consumer維護了自己的offset。

我們再看group B,可以看到兩個group是並行消費整個topic,同一條消息會被不同group消費到。

https://blog.csdn.net/liyiming2017/article/details/82805479

https://zhuanlan.zhihu.com/p/60110741

此處有如下知識點:

1、每個partition都是有序的不可變的。

2、Kafka可以保證partition的消費順序,但不能保證topic消費順序。

3、無論消費與否,保留周期默認兩天(可配置)。

4、每個consumer維護的唯一元數據是offset,代表消費的位置,一般線性向后移動。

5、consumer也可以重置offset到之前的位置,可以以任何順序消費,不一定線性后移。
————————————————

原文鏈接:https://blog.csdn.net/liyiming2017/java/article/details/82805479

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM