Кафка с SSL - пиши в тему - ошибка авторизации - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь создать из командной строки тему, которая находится в локальном кластере Kafka с включенным SSL.

Тема только что была создана с помощью:

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

Команда для созданияis:

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 (я запускаю ее на локальном компьютере).

1 Ответ

0 голосов
/ 09 января 2019

Поскольку у вас есть кластер, защищенный 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 параметр

...