gpt4 book ai didi

python - 使用 Kerberos 将 Kafka-Python 与集群连接

转载 作者:太空狗 更新时间:2023-10-29 21:52:12 26 4
gpt4 key购买 nike

我正在尝试使用 Kafka-Python 连接到 Kafka,Kafka 集群具有 Kerberos,我们需要构建一些命令来执行几个步骤。

我在集群上创建了一个 Topic,并使用 ./kafka-console-producer.sh./kafka-console-consumer.sh 进行了测试并且效果很好。

但是当我尝试连接 Kafka-Python 时遇到了问题。请参阅下面的代码:

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:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\producer\kafka.py", line 328, in __init__
File "C:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\client_async.py", line 202, in __init__
File "C:\Users\m\kafka-python-1.3.1\kafka.zip\kafka\client_async.py", line 791, in check_version
kafka.errors.NoBrokersAvailable: NoBrokersAvailable

我在远程机器上运行它。 bootstrap_server 我使用了 Zookeeper 主机名和端口,但效果不佳。

我发现了一些关于它的东西,在 Kafka-Python 的 git 中我发现他们有 implemented .

还有其他连接方式吗?

最佳答案

如果任务是在 python 中解决这个问题,另一种选择是使用 confluent-kafka-python内部使用的库 librdkafka它是用 C 编写的,支持 SASL,并使用 keytab 文件。这不需要单独的 Java 进程来通过 SASL 与 kafka 进行通信。

有关说明,另请参阅 librdkafka 的文档图书馆:

https://github.com/edenhill/librdkafka/wiki/Using-SASL-with-librdkafka - 一般介绍 https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md - 可以传递给 confluent_kafka.Producerconfluent_kafka.Consumer in python 构造函数的属性

关于python - 使用 Kerberos 将 Kafka-Python 与集群连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com