我正在尝试从命令行生成启用了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的正确命令(我在本地计算机上运行它。)
答案 0 :(得分:0)
由于您拥有受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
选项
答案 1 :(得分:0)
由于 SSL 属性,我得到了相同的结果,请通过 SSL。
以下是 AVRO 消息的示例
./kafka-avro-console-producer --topic <topic_name> --broker-list <broker:port> --producer.config ssl.properties --property schema.registry.url=<schema_registru_url (for avro msg)> --property value.schema="$(< /path/to/avro_chema.avsc)" --property key.schema='{"type":"string"}' --property parse.key=true --property key.separator=":"