有序消息

一般业务不要求全局有序,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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章