将消息发布到 kafka 主题时出错

问题描述

我是卡夫卡的新手。我编写了一个简单的 JAVA 程序来使用 avro 模式生成消息。我已经生成一个特定的记录。记录生成成功。我的架构尚未在我的本地环境中注册。它目前已在其他一些环境中注册

我正在使用 apache kafka 生产者库将消息发布到我的本地环境 kafka 主题。我可以将消息发布到本地主题吗,或者架构也需要在本地架构注册表中注册

以下是生产者属性 -

        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONfig,StringSerializer.class);
        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONfig,KafkaAvroSerializer.class);
        properties.put(KafkaAvroSerializerConfig.SCHEMA_REGISTRY_URL_CONfig,"https://schema-registry.xxxx.service.dev:443");```

Error I am getting while publishing the message -
``` org.apache.kafka.common.errors.SerializationException: Error registering Avro schema: 
Caused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: User is denied operation Write on Subject: xxx.avro-value; error code: **40301**

解决方法

问题是 kafka 生产者默认尝试在主题上注册架构。所以,我添加了以下内容 - properties.put(KafkaAvroSerializerConfig.AUTO_REGISTER_SCHEMAS,false); 它解决了这个问题。