【发布时间】:2021-09-03 13:13:08
【问题描述】:
我正在尝试使用向多个代理支持的 Kafka 主题发送消息。下面是我的方法,其中self.bootstrap_servers = "[b-1.dev-stg-kafka.wjiw3s.c1.kafka.us-east-1.amazonaws.com:9092, b-2.dev-stg-kafka.wjiw3s.c1.kafka.us-east-1.amazonaws.com:9092]"
from kafka import KafkaProducer
from time import sleep
def send(self):
try:
producer = KafkaProducer(bootstrap_servers=self.bootstrap_server, api_version=(0, 10, 1))
message = self.prepare_message()
producer.send(self.topic, self.encoded_payload)
sleep(2)
except:
print("Exception sending message to kafka")
当我尝试对此进行测试时,我进入了异常块,失败的那一行是我创建生产者的时候。如何使用这个 KafkaProducer 发布 Kafka 消息,它有多个支持它的 kafka bootstrap_servers?有没有其他方法可以做到这一点?
错误:
File "C:\Users\ENV\datareplayer\venv\lib\site-packages\kafka\client_async.py", line 216, in __init__
self._bootstrap(collect_hosts(self.config['bootstrap_servers']))
File "C:\Users\ENV\datareplayer\venv\lib\site-packages\kafka\conn.py", line 1236, in collect_hosts
host, port, afi = get_ip_port_afi(host_port)
File "C:\Users\ENV\datareplayer\venv\lib\site-packages\kafka\conn.py", line 1192, in get_ip_port_afi
host, rest = host_and_port_str[1:].split(']')
ValueError: not enough values to unpack (expected 2, got 1)
【问题讨论】:
-
错误是什么?
-
你为什么认为你需要方括号?这不在任何示例中
-
我找到的例子都是方括号。它应该只是 bootstrap_server 的字符串吗?
标签: python apache-kafka