写入主题-授权错误

nzkunb0c  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(344)

我试图从命令行生成一个主题,该主题位于启用ssl的本地kafka集群上。
创建主题时使用:

kafka-topics --zookeeper localhost:2181  --create --topic simple    --replication-factor 1 --partitions 1

生成命令为:

kafka-avro-console-producer \ 
         --broker-list localhost:9092 --topic simple \
         --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]}' \
         --property schema.registry.url=http://localhost:8080

打字:

{"f1": "Alyssa"}

错误:

{"f1": "Alyssa"}
Error when sending message to topic simple with key: null, value: 12 bytes with error: 
(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback:52) org.apache.kafka.common.errors.TopicAuthorizationException: 
Not authorized to access topics: [simple]

如何添加对此主题的访问权限?
acl的正确命令是什么(我正在本地计算机上运行它)。

5lhxktic

5lhxktic1#

既然您有一个受ssl保护的集群,那么我建议创建一个配置文件,并使用此参数让cli引用它。

--producer.config <String: config file>  Producer config properties file. Note
                                           that [producer-property] takes
                                           precedence over this config

示例文件如下所示

bootstrap.servers=localhost:9092

# SSL related properties

security.protocol=SSL
ssl.keystore.location=/path/to/keystore-cert.jks
ssl.truststore.location=/path/to/truststore-cert.jks
ssl.key.password=xxxx
ssl.keystore.password=yyyy
ssl.truststore.password=zzzz

另一方面,你必须一个接一个地把它们传给 --property 选项

相关问题