就是有个场景,有个任务要处理,任务必须串行执行
为了保证任务下发后不丢失
打算借助 kafka 的持久化,把任务丢到 kafka 中
后台服务有多个节点,也就是多个节点在消费 kafka
怎么样才能做到串行消费 kafka 的消息呢?
就是说,多个节点排队消费,第一个节点拿到消息后,如果没处理完,其他节点不能继续消费
搞了好久都没实现
又不想用数据库存储然后定时读取的方式(这种方式肯定没问题)
想通过这个功能,学会 kakfa 的使用
请假一下各位大佬,基于 kafka 能不能实现这个想法呢?谢谢
举报· 151 次点击
登录 注册 站外分享
15 条回复  
Marinaaaa 小成 2024-8-28 10:33:00

请问一下,多节点消费 kafka 如何做到串行消费

1. topic 单分区 ,多消费者, 这样再多消费者也就只有一个在工作。

2. 多分区,多消费者,任务投递的指定 key ,这样同样 key 的任务在同一个分区,也是被顺序消费的。

3.  分布式锁 , 抢到锁的去消费
MoYi123 小成 2024-8-28 10:14:46

请问一下,多节点消费 kafka 如何做到串行消费

kafka 在这起什么作用? rpc 调用就会导致任务丢失了?
awalkingman 小成 2024-8-28 10:00:48

请问一下,多节点消费 kafka 如何做到串行消费

@zt5b79527 正解
zdt3476 小成 2024-8-28 09:50:31

请问一下,多节点消费 kafka 如何做到串行消费

你给这个 topic 只分配一个 partition 就好了,这样多消费者就不起作用了
echoZero 小成 2024-8-28 09:35:08

请问一下,多节点消费 kafka 如何做到串行消费

放同一个分区。之所有会出现多条消息并行处理,因为是批量拉取消费消息,这个是你的消费逻辑问题,看一下是不是消费逻辑并发处理拉取的消息了
frank1256 小成 2024-8-28 09:18:27

请问一下,多节点消费 kafka 如何做到串行消费

多节点抢锁,抢不到锁的 commit offset 要回退的,因为你第二个节点虽然拿不到锁,但已经消费到数据了
zt5b79527 小成 2024-8-28 09:14:00

请问一下,多节点消费 kafka 如何做到串行消费

单个实例去消费不就完了,如果必须是多个实例,就去抢分布式锁,拿到锁的才能去消费
Wh1t3zZ 小成 2024-8-28 09:04:05

请问一下,多节点消费 kafka 如何做到串行消费

"多个节点排队消费,第一个节点拿到消息后,如果没处理完,其他节点不能继续消费"

没看懂多个节点消费的意义是什么
kur0d3s 小成 2024-8-28 08:56:01

请问一下,多节点消费 kafka 如何做到串行消费

要求单实例顺序执行了, 那消费者多实例的意义是啥...
dddd1919 初学 2024-8-27 23:08:55

请问一下,多节点消费 kafka 如何做到串行消费

给串行的每个节点定义一个 topic 和 topic 的串行顺序,每个节点执行器执行完成后把消息推送到下一个 topic
12下一页
返回顶部