Отсутствует ключ при записи в тему - PullRequest
0 голосов
/ 05 февраля 2019

Использование Java Kafka Streams API.Я хочу выбрать новый ключ для темы, которую я использую.Новый ключ будет другого типа.Когда я использую консольного потребителя для использования темы с новым ключом, я вижу только значения.

valueStream
    .map((key, value) -> new KeyValue(value.getBook_id(), value))
    .peek((key, value) -> {
        System.out.println("key: " + key); // prints key as expected
        System.out.println("value: " + value); // prints value as expected
    })
    .to("foobartopic", 
        Produced.with(Serdes.Integer(),bookValueIntSerde));

Результат использования "foobartopic" actual result

Ожидаемый результатто же самое, но с непустым ключом.

1 Ответ

0 голосов
/ 05 февраля 2019

Ваш производитель использует Serdes.Integer для сериализации ключей, поэтому для печати ключа в удобном для пользователя формате с помощью kafka-console-consumer необходимо установить --key-deserializer на соответствующее значение.В вашем случае это org.apache.kafka.common.serialization.IntegerDeserializer.

./kafka/bin//kafka-console-consumer.sh --bootstrap-server :9092 --property print.key=true --from-beginning --topic foobartopic --key-deserializer=org.apache.kafka.common.serialization.IntegerDeserializer

...