如何使我的消费者使用2个主题

hvvq6cgz  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(318)

我有一个用例,我有两个主题
专题1(单元)->p0/专题2(保留)->p0
我有一个使用者,它需要从两个主题/分区获取最新数据,以便做出正确的决定(如果没有保留,则删除一个单元,如果存在,则保留该单元)
我决定让他们在两个不同的主题概念隔离,以及在任何时候,我需要一个第三个服务与单位互动,只有这样才有可能在一个简单的方式。
但是,如何处理并发操作的想法,可能会出现或延迟事件从一个主题到另一个主题?
谢谢

lf5gs5x2

lf5gs5x21#

假设每个主题(或分区)都按您的喜好排序,您可以使用pause()、resume()和seek()调用来实现这一点。
为每个主题启动一个消费者,如果它比另一个主题提前太多,则暂停(),当另一个主题赶上时,则继续()。
这基本上是合并两个排序的列表,就在Kafka上面。
根据是否使用subscribe()或assign(),您可能仍需要继续轮询暂停的使用者,以避免触发重新平衡。
如果所讨论的主题不是完全有序的(意味着有些事件发布得太晚了),那么您需要本地状态(基本上是一个窗口化的流到流连接)。自己实现这一点是可能的,但这正是流处理框架开始派上用场的地方。

相关问题