【发布时间】:2018-01-15 07:42:05
【问题描述】:
在使用 Kafka Streams 的处理器 API 时,我使用这样的东西:
context.forward(key,value)
context.commit()
实际上,我在这里所做的是每分钟从状态存储向接收器发送一个状态(使用 init() 方法中的 context.schedule())。我在这里不明白的是:
我正在发送的 [Key,Value] 对,然后执行 commit() 来自 state store。它是根据我的特定逻辑从 许多 非顺序 输入 [key,value] 对聚合而成的。每个这样的输出 [key,value] 对都是来自输入(kafka 主题)的少数无序 [key,value] 对的聚合。所以,我不明白 Kafka 集群和 Kafka Streams lib 如何知道原始输入 [key,value] 对和最终输出 [key,value] 之间的相关性。如果 Kafka 不知道输入对和输出对之间的连接,它如何被事务包装(故障安全)。当我执行 context.commit() 时实际提交了什么?
谢谢!
【问题讨论】:
标签: apache-kafka apache-kafka-streams