Как игнорировать схему Avro другим источником реестра Confluent? - PullRequest
0 голосов
/ 09 января 2020

Я создаю одну и ту же схему Avro для одной топи c, использую разные источники реестра Confluent. Я получаю сообщение об ошибке при использовании этой topi c:

org.apache.kafka.common.errors.SerializationException: Error deserializing key/value for partition XXXXX_XXXX_XXX-0 at offset 0. If needed, please seek past the record to continue consumption.

Caused by: org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id 7

Caused by: org.apache.kafka.common.errors.SerializationException: Could not find class XXXXX_XXXX_XXX specified in writer's schema whilst finding reader's schema for a SpecificRecord.

Как по-разному игнорировать Avro-идентификатор сообщения?


Схема:

 {
      "type": "record",
      "name": "XXXXX_XXXX_XXX",
      "namespace": "aa.bb.cc.dd",
      "fields": [
        {
          "name": "ACTION",
          "type": [
            "null",
            "string"
          ],
          "default":null,
          "doc":"action"
        },
        {
          "name": "EMAIL",
          "type": [
            "null",
            "string"
          ],
          "default":null,
          "doc":"email address"
        }
      ]
    }

Производимая команда

{"Action": "A", "EMAIL": "xxxx@xxx.com"}

1 Ответ

0 голосов
/ 09 января 2020

Невозможно использовать разные URL-адреса реестра в производителе и иметь возможность использовать их последовательно.

Причина в том, что в topi c будет помещен другой идентификатор.

Невозможно пропустить поиск идентификатора схемы.

Если бы вы использовали один и тот же реестр, одна и та же полезная нагрузка схемы всегда генерировала бы один и тот же идентификатор, который потребитель мог бы последовательно использовать для чтения. сообщения

...