【发布时间】:2020-06-10 11:33:44
【问题描述】:
在创建处理器 API Topology 时,我注意到 Topology#addStateStore(StoreBuilder, String...)
接受多个处理器,这意味着一个状态存储可以由多个处理器共享。
这种设计有什么注意事项吗? 如果一个键不存在,而实际上其他处理器只是为这个键存储一个值,是否有可能通过存储值来丢失数据? 我想我在问是否会出现通常的比赛条件问题。
如果处理器属于不同的子拓扑,会有什么不同吗?
此外,当附加到具有不同数量分区的源的处理器共享相同的状态存储时会发生什么?这将如何影响状态存储分片?
【问题讨论】:
-
我看到人们对这个问题投了反对票......我们很幸运有很多关于 Kafka 处理器的文章计算一个句子中的单词,但我找不到任何资源可以解决(非常常见 - 在我的意见)处理器需要相互共享一些数据的情况,以及它可能引入的陷阱。很抱歉问了这么含糊的问题。
标签: apache-kafka apache-kafka-streams