kafka-python 引发 UnrecognizedBrokerVersion 错误

Ren*_* B. 6 python apache-kafka kafka-python aws-msk

使用kafka-python包构建 KafkaProducer 时出现此错误:

[ERROR] UnrecognizedBrokerVersion: UnrecognizedBrokerVersion
Traceback (most recent call last):
  File "/var/lang/lib/python3.7/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/var/lang/lib/python3.7/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/var/task/kafka/producer/kafka.py", line 381, in __init__
    **self.config)
  File "/var/task/kafka/client_async.py", line 240, in __init__
    self.config['api_version'] = self.check_version(timeout=check_timeout)
  File "/var/task/kafka/client_async.py", line 908, in check_version
    version = conn.check_version(timeout=remaining, strict=strict, topics=list(self.config['bootstrap_topics_filter']))
  File "/var/task/kafka/conn.py", line 1228, in check_version
    raise Errors.UnrecognizedBrokerVersion()
Run Code Online (Sandbox Code Playgroud)

代码如下:

from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=os.environ.get('KAFKA_HOST', 'localhost:9092'))
Run Code Online (Sandbox Code Playgroud)

我正在使用 Python 3.7 和 AWS MSK 集群。

Ren*_* B. 15

只需添加以下内容security_protocol="SSL"即可解决它KafkaProducer

from kafka import KafkaProducer
producer = KafkaProducer(security_protocol="SSL", bootstrap_servers=os.environ.get('KAFKA_HOST', 'localhost:9092'))
Run Code Online (Sandbox Code Playgroud)

  • 如果不使用 SSL 我可以使用 PLAINTEXT 吗?import os from kafka import KafkaConsumer Producer = KafkaConsumer(security_protocol="PLAINTEXT", bootstrap_servers=os.environ.get('KAFKA_HOST', 'localhost:2181')) 返回错误后引发 Errors.UnrecognizedBrokerVersion() kafka.errors.UnrecognizedBrokerVersion:无法识别的BrokerVersion,如何解决? (3认同)
  • @NikolayBaranenko 将端口从 2181 更改为 9092。 (2认同)