Ошибка указывает, что сообщение несовместимо с определенной вами схемой Avro.Насколько я понимаю, вы хотите разрешить null
значения для поля f2
.Для этого вам нужно изменить value.schema
на (обратите внимание на определение "type"
):
value.schema='{"type":"record","name":"myrecord1","fields": [{"name":"f1","type":"string"},{"name": "f2", "type": ["null", "int"], "default": 0}]}'
, но вам все равно потребуется определить ключ f2
с нулевым значением.Следующее должно помочь вам:
kafka-avro-console-producer --broker-list localhost:9092 --topic test-avro \
--property schema.registry.url=http://localhost:8081 \
--property value.schema='{"type":"record","name":"myrecord1","fields": [{"name":"f1","type":"string"},{"name": "f2", "type": ["null", "int"], "default": 0}]}'
{"f1":"value1","f2":null}
И вы можете подтвердить, что это сработало, используя kafka-avro-console-consumer
:
kafka-avro-console-consumer --bootstrap-server localhost:9092 --topic test-avro --from-beginning
{"f1":"value1","f2":null}
^CProcessed a total of 1 messages