解决kafka.errors.NoBrokersAvailable: NoBrokersAvailable

报错如下:

  File "/usr/lib/python2.7/site-packages/kafka_python-1.3.5-py2.7.egg/kafka/producer/kafka.py", line 347, in __init__
    **self.config)
  File "/usr/lib/python2.7/site-packages/kafka_python-1.3.5-py2.7.egg/kafka/client_async.py", line 221, in __init__
    self.config['api_version'] = self.check_version(timeout=check_timeout)
  File "/usr/lib/python2.7/site-packages/kafka_python-1.3.5-py2.7.egg/kafka/client_async.py", line 846, in check_version
    raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable

细看错误信息,说是配置参数 api_version 的问题,我的程序调用里配置如下:

p = Producer('kafka_ip:port',
             acks=1,
             batch_size=10485760,
             linger_ms=100,
             max_block_ms=10000,
             max_request_size=10485760,
             send_buffer_bytes=10485760)

需要加一个api_version,如下:

p = Producer('kafka_ip:port',
             acks=1,
             batch_size=10485760,
             linger_ms=100,
             max_block_ms=10000,
             max_request_size=10485760,
             send_buffer_bytes=10485760,
             api_version=(0, 10))  # 注意这里加了新内容

注意:
若kafka版本为0.10,则 api_version=(0, 10)
​若kafka版本为0.10.2,则 api_version=(0, 10, 2)
这样设置就可以连接到kafka了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值