【发布时间】:2018-03-17 03:26:15
【问题描述】:
我需要按顺序处理产品 ID,并计划为此使用 kafka,现在如果 kafka 或我的代码丢失数据,我将所有这些产品 ID 保存在可能的数据库中,因此如果记录未在给定时间让我们说 24 小时我需要在队列中重新发布它们,但由于 kafka 对队列中的数据没有优先级概念,所以我可以有另一个可以充当优先级队列的队列。
我面临的问题是我还需要在优先队列中订购产品。因此,如果我基于散列分布在分区中,并且我的消费者再次按顺序处理消息,即维护消费者中每个线程的队列并基于产品 ID 的散列,我可以主要在内存队列中的这些之间分布数据。但是在 2 个队列的情况下,1 个作为主队列,1 个优先级 I 在这些队列中排序。所以来自两个队列的数据应该发送给同一个消费者,这样我就可以在我的代码中保持顺序。
如果我走错了路,或者我应该如何继续,请提出建议。
【问题讨论】:
标签: java apache-kafka kafka-consumer-api apache-kafka-connect