有序消息
一般業務不要求全局有序,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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:大數據技術架構
鏈接:https://www.zhihu.com/question/266390197/answer/744933254
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

浙公網安備 33010602011771號