Я хочу настроить производитель spring-cloud-stream-kafka с весенней загрузкой.
Производитель работает, и я могу получать сообщения от брокера kafka, но сообщения также содержат некоторую информацию заголовка, например следующую:
contentType "text/plain"originalContentType "application/json;charset=UTF-8"{"message":"hello"}
Мой POJO содержит одно поле (сообщение String), поэтому я ожидаю, что в kafka будет отправлена только строка JSON.
Метод test () в моем RestController запускает производителя:
@EnableBinding(ProducerChannels.class)
@SpringBootApplication
@RestController
public class KafkaStreamProducerApplication {
private MessageChannel consumer;
public KafkaStreamProducerApplication(ProducerChannels channels) {
this.consumer = channels.consumer();
}
@PostMapping("/test/{message}")
public void test(@PathVariable String message) {
Message<MyMessage> msg = MessageBuilder.withPayload(new MyMessage(message)).build();
this.consumer.send(msg);
}
interface ProducerChannels {
@Output
MessageChannel consumer();
}
Мои application.properties
spring.cloud.stream.bindings.consumer.destination=consumer
spring.cloud.stream.bindings.consumer.content-type=application/json
Я также был бы признателен, если бы вы порекомендовали какие-либо документы или примеры по этой теме. Примеры на github обычно очень тонкие, они используют много автоконфигурация и без пояснений. Я использовал пример для RabbitMQ.