提问者:小点点

KStreams-KTable启动阶段


KStreams-KTablejoin的工作方式非常简单:每次在流上发出新样本时,都会对表执行键查找。

这会在瞬态阶段产生意外行为吗?我们有这样一个拓扑:

  1. OneKStream我们在其中执行selectKey将其转换为Stream A1
  2. 一个KStreamB,我们将其分组然后减少,将其转换为KTable B1

在启动时,我们在A上发布两条记录,在B上发布两条记录,这样在A上的selectKey和B上的groupBy duce之后,键将匹配。但是,我们注意到有时A1和B1之间的内连接的样本会失败,我们会丢失一些我们期望的输出。

确保没有更新丢失的正确拓扑是什么?


共1个答案

匿名用户

KStream-KTable连接同步是尽力而为。我们致力于改进以更好地保证1.2版本。atm,你能做的不多。

如果您需要严格的保证,您需要使用transverter()而不是join()来实现您自己的流表连接运算符。您可以将KTable存储连接到Transformer并为连接查找设置自定义逻辑。