KAFKA保证顺序消费

kafka保证顺序消费

在项目中经常会出现需要保证消息有序性的需求。

1,为什么要保证消息的有序性

有些业务有前后依赖关系,比如数据更新多次,如果无序看到的就是历史数据,还有像下单支付,肯定是要先下单再去支付,由于kafka多个partition是可以并发存取的,通常为了大吞吐大多数也会采取多partition方案,并发下再加上网络传输的不确定性,就会导致后来的消息被先消费,先来的消息反而后消费

1,如何保证消息的有序性

1,topic下单个partition,此时所有的消息都落在一个parition中,自然是有序的,但是这种方案极大的降低了吞吐量

2,topic下多个partition,指定消息的key,或者指定分区,保证相同业务类型的数据落在一个分区,比如相同订单id落在同一个分区,不同id的订单可以并发写入。在消费端每个消费线程消费一个partition。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值