kafka如何保證消息有序


兩種方案:

方案一,kafka topic 只設置一個partition分區  

方案二,producer將消息發送到指定partition分區

解析:

方案一:kafka默認保證同一個partition分區內的消息是有序的,則可以設置topic只使用一個分區,這樣消息就是全局有序,缺點是只能被consumer group里的一個消費者消費,降低了性能,不適用高並發的情況

方案二:既然kafka默認保證同一個partition分區內的消息是有序的,則producer可以在發送消息時可以指定需要保證順序的幾條消息發送到同一個分區,這樣消費者消費時,消息就是有序。

producer發送消息時具體到topic的哪一個partition分區,提供了三種方式

1)指定分區

2)不指定分區,有指定key 則根據key的hash值與分區數進行運算后確定發送到哪個partition分區

3)不指定分區,不指定key,則輪詢各分區發送


免責聲明!

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



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