kafka如何保證訊息有序

2021-10-20 20:53:44 字數 476 閱讀 7851

兩種方案:

方案一,kafka topic 只設定乙個partition分割槽  

方案二,producer將訊息傳送到指定partition分割槽

解析:方案一:kafka預設保證同乙個partition分區內的訊息是有序的,則可以設定topic只使用乙個分割槽,這樣訊息就是全域性有序,缺點是只能被consumer group裡的乙個消費者消費,降低了效能,不適用高併發的情況

方案二:既然kafka預設保證同乙個partition分區內的訊息是有序的,則producer可以在傳送訊息時可以指定需要保證順序的幾條訊息傳送到同乙個分割槽,這樣消費者消費時,訊息就是有序。

producer傳送訊息時具體到topic的哪乙個partition分割槽,提供了三種方式

1)指定分割槽

2)不指定分割槽,有指定key 則根據key的hash值與分割槽數進行運算後確定傳送到哪個partition分割槽

3)不指定分割槽,不指定key,則輪詢各分割槽傳送

高吞吐的kafka如何保證訊息消費的有序性

producer端傳送的message必須指定是傳送到哪個topic,但是不需要指定topic下的哪個partition,因為kafka會把收到的message進行load balance,均勻的分布在這個topic下的不同的partition上 hash message broker數量 同組有多...

如何保證kafka 的訊息機制

1.kafka 知識總結 1 kafka是什麼 類jms訊息佇列,結合jms中的兩種模式,可以有多個消費者主動拉取資料,在jms中只有點對點模式才有消費者主動拉取資料。kafka是乙個生產 消費模型。producer 生產者,只負責資料生產,生產者的 可以整合到任務系統中。資料的分發策略由produ...

Kafka 如何保證訊息不會丟失

kafka 提供了資料高可靠的特性,但是如果使用不當,你可能無法享受到這一特性,今天我們就來看看如何正確的使用kafka 保證資料的不會丟失吧!kafka為生產者生產訊息提供了乙個send msg 方法,另有乙個過載的方法send msg,callback 當我們通過send msg,callbac...