消息队列如何严格保证消息的顺序性?

消息队列如何保证同一个key一定是按照顺序消费?

需要在生产端保证同一个key写到同一个分区中,然后消费者单线程去消费,那么如何保证同一个key写到相同的分区呢?


kafka可以根据key hash到同一个分区,但是当增加分区的时候就有问题了比如原来分区是3,根据hash(key)%3=1(写入分区1),现在新增一个分区,分区数是4,现在hash(key)%4=3(写入分区3),这时就不在同一个分区了

我在这块比较有经验,给你几个解决方案

1.生产者可以控制相同的key 进入同一个分区,从而实现同一个key一定安装顺序效果

2.如果同一个key分散到不同的分区,可以在消费者端,keyby操作,然后排序操作

只要配置zookeeper.connect为要加入的集群,再启动Kafka进程,就可以让新的机器加入到Kafka集群。但是新的机器只针对新的Topic才会起作用,在之前就已经存在的Topic的分区,不会自动的分配到新增加的物理机中。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y