Пакетное перенаправление Spring Boot Kafka

#java #apache-kafka #spring-kafka

#java #apache-kafka #spring-кафка

Вопрос:

Я настроил своего потребителя на прием сообщений из темы в пакетах. Как мне перенаправить его в новую тему?

Я хочу, чтобы каждое потребляемое сообщение пересылалось как его собственное сообщение. Таким образом, X количество потребляемых сообщений приведет к X количеству сообщений.

Вот моя текущая настройка:

 @KafkaListener(topics = "input")
@SendTo("output")
public ConsumerRecords consume(ConsumerRecords records) {
  // Do things
  return records;
}
  

И вот выданное исключение:

org.springframework.kafka.Исключение KafkaException: для класса java.util не найден метод.Список массивов

Комментарии:

1. В вашем коде больше ничего нет? Где вы используете ArrayList?

2. Единственным другим кодом является настройка через файл yaml

3. При задании подобных вопросов показывайте полную трассировку стека.

Ответ №1:

Эта функциональность не поддерживается. В любом случае вы не можете отправить a ConsumerRecord в a Producer .

Это работает, хотя

 @KafkaListener(id = "foo", topics = "input")
@SendTo("output")
public List<String> consume(List<String> data) {
    return data;
}
  

(где String тип, созданный вашим десериализатором).

Комментарии:

1. Будет ли это отправлять 1 сообщение со списком строк или несколько сообщений с одной строкой в каждом?

2. По одной записи на строку.

3. Кроме того, невозможность отправки ConsumerRecord теперь имеет большой смысл.