【发布时间】:2019-02-12 04:33:03
【问题描述】:
我们的应用程序在流代码中间歇性地遇到 OutOfOrderSequenceException。这会导致流线程停止。
实现很简单,2个KStreams join并输出到另一个topic。
在搜索此 OutOfOrderSequenceException 的解决方案时 我在 Confluent 上找到了以下文档
https://docs.confluent.io/current/streams/concepts.html#out-of-order-handling
但是找不到这里提到的设置、配置或权衡? 如何手动记账?
如果用户想要处理这样的乱序数据,通常他们需要 让他们的应用程序在记账时等待更长的时间 他们在等待期间的状态,即做出权衡决定 在延迟、成本和正确性之间。 在 Kafka Streams 中,用户可以 为窗口聚合配置它们的窗口运算符以实现 此类权衡(详情可在开发者指南中找到)。
【问题讨论】:
-
我相信那部分是指窗口化。 docs.confluent.io/current/streams/developer-guide/… 可以通过在您可能认为事件“迟到”的持续时间内保持一个打开的窗口来处理乱序事件。
-
OutOfOrderSequenceException(即使它具有相似的名称)与文档中讨论的“无序数据”无关。这是一个内部错误。
标签: apache-kafka apache-kafka-streams