解决python-kafka连接kafka时报错kafka.errors.NoBrokersAvailable: NoBrokersAvailable
完整报错:Traceback (most recent call last):File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py", line 1483, in _execpydev_imports.execfile(file, globals, locals)# execute the s
·
完整报错:
Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py", line 1483, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/Users/xq/Desktop/data/pycharm_pro/Test_alg/python_kafka/generator.py", line 11, in <module>
producer = KafkaProducer(bootstrap_servers='localhost:1234')
File "/Users/xq/.conda/envs/pycharm_env/lib/python3.8/site-packages/kafka/producer/kafka.py", line 381, in __init__
client = KafkaClient(metrics=self._metrics, metric_group_prefix='producer',
File "/Users/xq/.conda/envs/pycharm_env/lib/python3.8/site-packages/kafka/client_async.py", line 244, in __init__
self.config['api_version'] = self.check_version(timeout=check_timeout)
File "/Users/xq/.conda/envs/pycharm_env/lib/python3.8/site-packages/kafka/client_async.py", line 900, in check_version
raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
解决方法
在初始化的时候传入api的版本,即:
修改:
producer = KafkaProducer(bootstrap_servers='localhost:1234')
为
producer = KafkaProducer(bootstrap_servers='localhost:1234', api_version=(0, 10, 2))
这个版本对应自己的kafka版本,一个比较安全的值是:0.10.2
,更多版本信息可以参考:https://cwiki.apache.org/confluence/display/KAFKA/Compatibility+Matrix
问题解析
python-kafka
并不会给太多报错的细节,所以这需要我们查看报错位置,这里的报错:
self.config['api_version'] = self.check_version(timeout=check_timeout)
可知是api_version
的报错,因此我们只需查看相关资料,即可得到解决方案
更多推荐
已为社区贡献66条内容
所有评论(0)