从一个主题到同一主题的处理流(循环处理)

时间:2019-10-03 09:48:11

标签: java apache-kafka apache-kafka-streams

我在处理从一个主题到同一主题(称为“餐厅”)的流时遇到问题。

如果我提出不同的话题,一切似乎都很好。但是,如果我提出“餐厅”主题,则该事件似乎未注册。 我还可以查看流,在所有情况下,我都可以看到流中的正确事件。

餐厅流中有事件(订单)。处理者会充实它们,并以“ enrichedOrder”的名称将它们发送回餐厅。

final StreamsBuilder builder = new StreamsBuilder();

KStream<String, Event>[] source = builder.stream("restaurant",consumed)
  .branch(
    (key, value) -> value.name.equals("order"), 
    (key, value) -> true
  );

  source[0].mapValues( (value)->{value.name="enrichedOrder"; return value;} )
    .to("restaurant");

具有“ enrichedOrder”事件的餐厅主题。

这有可能吗?

我正在使用具有kafka-streams API 2.3的Confluent云平台。

1 个答案:

答案 0 :(得分:0)

事实证明,所有代码在实际代码中都能正常工作。但是出于某种原因,Confluent Web界面未显示这些新事件。 (我正在使用Confluent Web界面监视主题。)