Я использую kafka-client:2.3.1
для отправки сообщений.
Я пытался отправить пользовательские заголовки.
Мой код производителя, как показано ниже
ProducerRecord<String, String> producerRecord = new ProducerRecord<>(kafka.streamName(),
messageSchema.getResourceId(), gson.toJson(body));
producerRecord.headers().add(new RecordHeader("eventId", UUID.randomUUID().toString().getBytes()));
producerRecord.headers().add(new RecordHeader("eventType", "CREATED".getBytes()));
И мой код потребителя, как показано ниже
@StreamListener(value = MessageChannels.BRANCH_IN),
condition = "headers['type']=='CREATED'")
public void created(
@Headers Map<String, String> headers,
@Payload SomeDto someDto) {
// ...
}
condition
не работает.
Поскольку потребитель получает заголовок type
в виде байтового массива.
Как отправить сообщение с типом String
?
(я не могу использовать spring-cloud-stream
или spring-kafka
, потому что версия весны производителя 1.4 ...)