Можно ли использовать одну и ту же привязку для создания сообщений через Kafka Producer и для отправки результатов обработки потока Kafka Streams?
Сейчас я разделил их следующим образом:
@Output(TOPIC_X)
MessageChannel xOutput();
@Output(TOPIC_X_ONE)
KStream<?,?> xOneOutput();
Когда первый используется производителем:
channels
.xOutput()
.send(MessageBuilder
.withPayload(x)
.setHeader(KafkaHeaders.MESSAGE_KEY, x.getId()).build());
И второй по потокам kafka:
@StreamListener
@SendTo(TOPIC_X_ONE)
public KStream<?,?> process(@Input(INPUT_TOPIC) KStream<String,String> inputStream){
//ommited for clarity
}
А в application.yml у меня есть:
spring.cloud.stream.bindings:
topic-x:
destination: mytopic
producer:
useNativeEncoding: true
topic-x-one:
destination: mytopic
producer:
useNativeEncoding: true
Действительно ли необходимо разделять их, если они оба имеют одинаковое назначение и оба являются выходами?