Подключение Kafka-Python с кластером с Kerberos
Я пытаюсь подключиться к Kafka с Kafka-Python, кластер Kafka имеет Kerberos, который нам нужно построить несколько команд, чтобы сделать несколько шагов.
Я создал одну тему в кластере и я сделала тест с ./kafka-console-producer.sh
и ./kafka-console-consumer.sh
и работает очень хорошо.
но когда я пытаюсь связаться с Кафкой-питоном, у меня возникла проблема. См. мой код ниже:
def produce():
print ('Producer')
k_producer = KafkaProducer(bootstrap_servers='hostname:6667',
security_protocol='SASL_PLAINTEXT',
sasl_plain_username='machine_usr',
sasl_plain_password='machine_pwd',
sasl_mechanism='PLAIN')
for i in range(10):
print ('Before send')
k_producer.send('myTopic', 'Testing My Topic ' + str(i))
print ('After send')
ну, запустив этот материал, я получил это сообщение об ошибке после 30 секунд:
File "C:Usersmkafka-python-1.3.1kafka.zipkafkaproducerkafka.py", line 328, in __init__
File "C:Usersmkafka-python-1.3.1kafka.zipkafkaclient_async.py", line 202, in __init__
File "C:Usersmkafka-python-1.3.1kafka.zipkafkaclient_async.py", line 791, in check_version
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
Я запуск на удаленной машине. И bootstrap_server я использовал имя хоста и порт Zookeeper, но не работал.
реализовала.есть ли другой способ подключения?
2 ответов
Если задача состоит в том, чтобы решить эту проблему в python, другой альтернативой может быть использование слияние-Кафка-питон библиотека, которая внутренне использует librdkafka который написан на C и поддерживает SASL и использование файла keytab. Это не потребует наличия отдельного процесса Java для связи с Кафкой через SASL.
для получения инструкций также обратитесь к документации librdkafka библиотека:
https://github.com/edenhill/librdkafka/wiki/Using-SASL-with-librdkafka - общее вступление
https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md - свойства, которые могут быть переданы в конструктор confluent_kafka.Producer
и confluent_kafka.Consumer
в python