有序消息

一般業務不要求全局有序,kafka只能保證同一個partition內消息有序,不能保證不同partition之間有序,因此業務只能充分利用單個partition內有序這個特點。

舉一個數據同步的例子,假設訂單表,每個訂單是有狀態的,我們要保證同一個訂單的多次修改記錄達到kafka裏的順序不能亂,我們可以根據訂單主鍵判斷該落哪一個分區,用的比較多的策略大概是 abs(hash(主鍵)) % partition_num,如此就能保證同一筆訂單落到同一個partition 繼爾保證了順序。 一般情況下這樣數據也是均衡的。

-------------------------------------------------------------------------------------------
 1 message.setOrderKey("指定業務邏輯中的順序key"); 
也就是保證對orderkey的操作消息是有序的,例如,orderkey=1增改刪的操作是有序的

作者:大數據技術架構
鏈接:https://www.zhihu.com/question/266390197/answer/744933254
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章