Как отправить заголовок со строковым типом? - PullRequest
0 голосов
/ 27 апреля 2020

Я использую 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 ...)

...