【发布时间】:2015-08-06 23:20:31
【问题描述】:
在 Kafka 中,我有一个生产者在排队处理客户的工作。每件作品上都有一个客户 ID。不同客户的工作可以乱序处理,但一个客户的工作必须按顺序处理。
为此,我打算有(例如)20 个主题来实现并行性。生产者将客户端 ID 的工作排队到topic[client ID mod 20]。然后我打算让许多消费者都能够处理任何客户的工作,但我仍然希望按顺序处理工作。这意味着该主题中的下一个工作价格在上一个工作完成之前无法开始处理。如果消费者失败,可以处理两次工作,但这意味着该主题的偏移量无法进行到下一个工作。
注意:每秒的消息数量相当少(10s-100s 消息)。
总结一下:
- “至少一次”处理每条消息 (=work)
- 为了处理一个主题的工作
- 每个主题有多个消费者以支持消费者失败
这可以使用 Kafka 完成吗?
【问题讨论】:
标签: message-queue apache-kafka