我在等你 n
关于卡克法主题的信息 n
消息我发出一个新主题的消息。我使用streams api来实现这一点,这很简单。但是,由于系统不可靠,我可能永远不会收到 n
但我还是想发出信息如果 x%
(例如。 95%
)的 n
已收到消息,但尚未录制新消息 y
秒。这是Kafka流可能还是我需要写一个消费者呢?
如果kafka流具有类似于rx的超时概念(http://reactivex.io/documentation/operators/timeout.html)我认为这是可能的,但我还没有找到一个在流api。
1条答案
按热度按时间ws51t4hk1#
没有超时的概念,但是你可以使用标点符号来做你想做的事情。您需要使用kafka1.0.0,它添加了挂钟时间标点,还允许取消标点计划。
因此,每次您收到一条记录并点击
x%
马克,你可以用你想要的超时时间注册一个时间表。如果在超时之前收到下一条消息,则可以取消计划并注册新的计划。此外,如果触发了标点符号,则可以发出并取消当前计划。关于这个atm的文档并不多,因为confluent开源4.0还没有发布(它在内部使用kafka 1.0.0)。但您可以查看设计方案中的一些细节:https://cwiki.apache.org/confluence/display/kafka/kip-138%3a+change+punctuate+semantics
注意:您不需要升级代理,如果需要,只需将streams库升级到1.0.0即可。查阅https://docs.confluent.io/current/streams/upgrade-guide.html#compatibility (1.0.0与0.11.0.x对旧代理具有相同的向后兼容性)