【发布时间】:2017-01-14 00:45:42
【问题描述】:
我正在尝试使用 Kafka-Python 连接到 Kafka,Kafka 集群具有 Kerberos,我们需要构建一些命令来执行几个步骤。
我在集群中创建了一个主题,并使用./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。
还有其他连接方式吗?
【问题讨论】:
-
查看工作脚本的内容会很有帮助。您还看到这个 OP 使用更简单的连接吗? stackoverflow.com/questions/35689238/… 这可能是一个开始的地方,即使您必须在没有 Kerberos 的情况下设置单独的实例。
-
感谢@DanielWisehart!我知道我们可以以一种简单的方式建立联系。但是 Kerberos 让事情变得有点困难......我需要使用 KeyTab 进行身份验证......而且它无法在 python lib 中做到这一点。
-
是你的 kafka 经纪人的地址
hostname:6667吗?乍一看似乎不对...
标签: python apache-kafka