【发布时间】:2018-05-15 01:01:46
【问题描述】:
我有一个处理器-API 处理器,它在内部转发到几个单独的接收器(想想一个事件分类器,尽管它在事件之间也有状态逻辑)。我正在考虑稍后在其中两个主题之间加入。加入后,我会将元素的更新(丰富)版本转发到我实际加入的主题。
如果在处理器 API 代码中转发到多个接收器(接收器 1、接收器 2),然后再发送到主题,你将如何混合 DSL?
我猜你可以创建单独的流,比如
val stream1 = builder.stream(outputTopic)
val stream2 = builder.stream(outputTopic2)
然后从那里构建?然而,这会产生更多的子拓扑——这意味着什么?
另一种可能性是在处理器 API 中拥有自己的状态存储并在同一个处理器中管理它(我实际上正在这样做)。它增加了代码的复杂性,但它不是更有效吗?例如,您可以删除不再使用的数据(一旦进行连接,您可以将新连接的数据转发到接收器,它不再符合连接条件)。还有其他效率问题吗?
【问题讨论】:
标签: apache-kafka apache-kafka-streams kafka-streams-scala