KStreams-KTable
join的工作方式非常简单:每次在流上发出新样本时,都会对表执行键查找。
这会在瞬态阶段产生意外行为吗?我们有这样一个拓扑:
KStream
我们在其中执行selectKey将其转换为Stream A1KStream
B,我们将其分组然后减少,将其转换为KTable B1在启动时,我们在A上发布两条记录,在B上发布两条记录,这样在A上的selectKey和B上的groupBy duce之后,键将匹配。但是,我们注意到有时A1和B1之间的内连接的样本会失败,我们会丢失一些我们期望的输出。
确保没有更新丢失的正确拓扑是什么?
KStream-KTable连接同步是尽力而为。我们致力于改进以更好地保证1.2版本。atm,你能做的不多。
如果您需要严格的保证,您需要使用transverter()
而不是join()
来实现您自己的流表连接运算符。您可以将KTable存储连接到Transformer
并为连接查找设置自定义逻辑。