Apache kafka 在KStreams中,如何动态控制Ktable/Ktable连接何时产生结果?
我有一个从Ktable到Ktable的连接。我使用.aggregate()创建Ktables,当任何一方接收到新消息时,它们会将结果发送给下一个流处理器。我有一个用例,我可以在左边的KTable上接收另一条消息,但该消息是“重复的”。它不是技术意义上的实际副本,而是每个“我的业务逻辑”的副本(它包含X、Y和Z字段,这些字段的值与前面的消息相同) 如何检查以前的聚合值,将其与新值进行比较,并阻止该消息导致联接产生结果 我也不想从Ktable中删除该密钥,因为当新的“右侧”消息出现时,我仍然需要右侧Ktable继续加入Apache kafka 在KStreams中,如何动态控制Ktable/Ktable连接何时产生结果?,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我有一个从Ktable到Ktable的连接。我使用.aggregate()创建Ktables,当任何一方接收到新消息时,它们会将结果发送给下一个流处理器。我有一个用例,我可以在左边的KTable上接收另一条消息,但该消息是“重复的”。它不是技术意义上的实际副本,而是每个“我的业务逻辑”的副本(它包含X、Y和Z字段,这些字段的值与前面的消息相同) 如何检查以前的聚合值,将其与新值进行比较,并阻止该消息导致联接产生结果 我也不想从Ktable中删除该密钥,因为当新的“右侧”消息出现时,我仍然需要右侧
我想动态控制连接何时产生结果。joiner中有什么我可以做的来检查以前的状态吗?为了解决这个问题,我使用了这里提供的答案:解决方案#1-在连接后使用转换,并跟踪以前的状态,如果我的业务逻辑确定它是“重复”消息,则返回null。有WIP将当前的“更新时发出”语义更改为“随机应变“语义学,所以这个问题应该在未来的版本中解决:——现在,我想除了你链接到的问题中讨论的内容之外,你还可以做很多事情。要解决这个问题,我使用了这里提供的答案:解决方案#1-在连接后使用转换,并跟踪以前的状态,如果我的业务逻辑确定它是一条“重复”消息,则返回null。有WIP将当前的“更新时发出”语义更改为“更改时发出”语义,因此该问题应该在将来的版本中解决:--目前,我想除了你链接的问题中讨论的内容之外,你还可以做很多事情。