我有一个用例,我有两个主题专题1(单元)->p0/专题2(保留)->p0我有一个使用者,它需要从两个主题/分区获取最新数据,以便做出正确的决定(如果没有保留,则删除一个单元,如果存在,则保留该单元)我决定让他们在两个不同的主题概念隔离,以及在任何时候,我需要一个第三个服务与单位互动,只有这样才有可能在一个简单的方式。但是,如何处理并发操作的想法,可能会出现或延迟事件从一个主题到另一个主题?谢谢
lf5gs5x21#
假设每个主题(或分区)都按您的喜好排序,您可以使用pause()、resume()和seek()调用来实现这一点。为每个主题启动一个消费者,如果它比另一个主题提前太多,则暂停(),当另一个主题赶上时,则继续()。这基本上是合并两个排序的列表,就在Kafka上面。根据是否使用subscribe()或assign(),您可能仍需要继续轮询暂停的使用者,以避免触发重新平衡。如果所讨论的主题不是完全有序的(意味着有些事件发布得太晚了),那么您需要本地状态(基本上是一个窗口化的流到流连接)。自己实现这一点是可能的,但这正是流处理框架开始派上用场的地方。
1条答案
按热度按时间lf5gs5x21#
假设每个主题(或分区)都按您的喜好排序,您可以使用pause()、resume()和seek()调用来实现这一点。
为每个主题启动一个消费者,如果它比另一个主题提前太多,则暂停(),当另一个主题赶上时,则继续()。
这基本上是合并两个排序的列表,就在Kafka上面。
根据是否使用subscribe()或assign(),您可能仍需要继续轮询暂停的使用者,以避免触发重新平衡。
如果所讨论的主题不是完全有序的(意味着有些事件发布得太晚了),那么您需要本地状态(基本上是一个窗口化的流到流连接)。自己实现这一点是可能的,但这正是流处理框架开始派上用场的地方。