kafka-console-consumer. sh подозревается в выполнении декодирования - PullRequest
1 голос
/ 06 апреля 2020

Я использую kafka-console-consumer. sh OOB-скрипт из папки установки kafka. При попытке этого сценария с байтовым вводом, в котором используются значения шестнадцатеричного кода, я получаю результаты в качестве исходных значений.

т.е. * Я подозреваю, что этот скрипт OOB декодирует шестнадцатеричные значения. Кто-нибудь может это одобрить / опровергнуть?

Спасибо!

1 Ответ

3 голосов
/ 06 апреля 2020

Зависит от того, как ваше приложение сериализует данные в топи c.

kafka-console-consumer.sh по умолчанию десериализует содержимое сообщения, используя StringSerializer.

Вы также можете использовать что-то вроде kafkacat для проверки содержимого сообщений и десериализации их, используя различные опции:

 -s key=<serdes>    Deserialize non-NULL keys using <serdes>.
 -s value=<serdes>  Deserialize non-NULL values using <serdes>.
 -s <serdes>        Deserialize non-NULL keys and values using <serdes>.
                    Available deserializers (<serdes>):
                      <pack-str> - A combination of:
                                   <: little-endian,
                                   >: big-endian (recommended),
                                   b: signed 8-bit integer
                                   B: unsigned 8-bit integer
                                   h: signed 16-bit integer
                                   H: unsigned 16-bit integer
                                   i: signed 32-bit integer
                                   I: unsigned 32-bit integer
                                   q: signed 64-bit integer
                                   Q: unsigned 64-bit integer
                                   c: ASCII character
                                   s: remaining data is string
                                   $: match end-of-input (no more bytes remaining or a parse error is raised).
                                      Not including this token skips any
                                      remaining data after the pack-str is
                                      exhausted.
                      avro       - Avro-formatted with schema in Schema-Registry (requires -r)
                    E.g.: -s key=i -s value=avro - key is 32-bit integer, value is Avro.
                      or: -s avro - both key and value are Avro-serialized
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...