Spring Boot Kafka Stream将具有不同标题的多个消息发送到同一主题

yhived7q  于 2022-12-29  发布在  Spring
关注(0)|答案(1)|浏览(139)

我需要一个流,需要发送多个消息到同一主题,但不同的Kafka标题。
我可以像下面这样发送消息,用~分割,但是所有的消息都有相同的头。

inputStream
  .transformValues(()->new Transformation())
  .flatMapValues(value->Arrays.asList(value.split("~")))
  .split()
    .branch(
      (key,value)->key.startsWith("ERR"),
      Branched.withConsumer(ks -> ks.to(errorTopic)))
    .defaultBranch(Branched.withConsumer(ks -> ks.to(outboundTopic)));
yquaqz18

yquaqz181#

如果你想修改标题,你需要使用process()步骤。

stream.process(() -> new MyProcessor());

MyProcessor implements api.Processor<...> {

    public void process(Record record) {
      // access headers via `record.headers()`
      // modify with `withHeaders(...)`

      context.forward(record); // send result record downstream
    }
}

相关问题