Spring и Kafka: использование одной и той же привязки для Kafka Producer и Kafka Streams - PullRequest
1 голос
/ 14 апреля 2019

Можно ли использовать одну и ту же привязку для создания сообщений через 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

Действительно ли необходимо разделять их, если они оба имеют одинаковое назначение и оба являются выходами?

1 Ответ

1 голос
/ 15 апреля 2019

Да, это необходимо; привязки обрабатываются двумя разными реализациями связывателя и другим клиентом kafka.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...