2

我正在尝试从命令行生成启用 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 的正确命令是什么(我在本地机器上运行它)。

4

2 回答 2

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选项

于 2019-01-09T20:48:11.507 回答
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=":"
于 2021-03-31T13:12:48.270 回答