KStreams - KTable 启动阶段
KStreams - KTable startup phase
KStreams - KTable
连接以一种非常简单的方式工作:每次在流上发出新样本时,都会在 table.
上执行按键查找
这会导致瞬态阶段的意外行为吗?我们有这样的拓扑结构:
- 一个
KStream
A 我们执行 selectKey 将其转换为 Stream A1
- 一个
KStream
B,我们将其分组然后归约,将其变成KTable B1
启动时,我们在A上发布两条记录,在B上发布两条记录,这样A上的selectKey和B上的groupBy+reduce之后key就会匹配上。然而,我们注意到有时 A1 和 B1 之间的内部连接失败的样本,我们反而丢失了一些我们期望的输出。
确保没有更新丢失的正确拓扑是什么?
KStream-KTable 尽最大努力加入同步。我们致力于改进,为 1.2 版本提供更好的保证。 atm,你能做的不多了
如果您需要严格保证,则需要使用 transform()
而不是 join()
来实现您自己的 stream-table 连接运算符。您可以将 KTable 存储连接到 Transformer
并为连接查找放置自定义逻辑。
KStreams - KTable
连接以一种非常简单的方式工作:每次在流上发出新样本时,都会在 table.
这会导致瞬态阶段的意外行为吗?我们有这样的拓扑结构:
- 一个
KStream
A 我们执行 selectKey 将其转换为 Stream A1 - 一个
KStream
B,我们将其分组然后归约,将其变成KTable B1
启动时,我们在A上发布两条记录,在B上发布两条记录,这样A上的selectKey和B上的groupBy+reduce之后key就会匹配上。然而,我们注意到有时 A1 和 B1 之间的内部连接失败的样本,我们反而丢失了一些我们期望的输出。
确保没有更新丢失的正确拓扑是什么?
KStream-KTable 尽最大努力加入同步。我们致力于改进,为 1.2 版本提供更好的保证。 atm,你能做的不多了
如果您需要严格保证,则需要使用 transform()
而不是 join()
来实现您自己的 stream-table 连接运算符。您可以将 KTable 存储连接到 Transformer
并为连接查找放置自定义逻辑。