kafka消息如何保證順序

kafka的特性
1.kafka中,寫入一個partion照片中的數據是必定有順序的
2.kafka中一個消費者消費一個partion的數據,消費者取出數據時,也是有順序的數據庫

須要順序的場景
1.數據庫中的binlog
2.一些業務須要,好比但願把某個訂單的數據寫入一個partion線程

爲什麼消息會錯亂
1.因爲消費者消費消息以後,消費以後,有可能交給不少個線程去處理數據(以下圖),這樣就致使數據順序錯亂 blog

解決辦法隊列

爲了保證一個消費者中多個線程去處理時,不會使得消息的順序被打亂,則能夠在消費者中,消息分發至不一樣的線程時,加一個隊列,消費者去作hash分發,將須要放在一塊兒的數據,分發至同一個隊列中,最後多個線程從隊列中取數據,以下圖所示。kafka

 

在这里插入图片描述

相關文章
相關標籤/搜索