问题
使用kafka-python想kafka写数据时报错:kafka.errors.NoBrokersAvailable: NoBrokersAvailable
代码如下:
**
from kafka import KafkaProducer
from kafka.errors import KafkaError
class KafkaPythonDemo(object):
def __init__(self):
self.producer = KafkaProducer(bootstrap_servers=["xx.xx.xx.xx:9092"])
self.topic = 'my_first_topic'
def producerTest(self):
print('------ producer begins ------')
n = 1
try:
while (n <= 1000):
self.producer.send(self.topic, str(n).encode())
print(f'send {str(n)}')
n += 1
time.sleep(0.5)
except KafkaError as e:
print(e)
finally:
self.producer.close()
print('======= 生产完毕 =========')
if __name__ == "__main__":
kafkaPythonDemo = KafkaPythonDemo()
kafkaPythonDemo.producerTest()
解决方案
修改Kafka配置文件server.properties,将listeners=PLAINTEXT://x.x.x.x:9092修改为以下配置 (x.x.x.x为服务器对外的IP)
**
# listeners = PLAINTEXT://x.x.x.x:9092
advertised.listeners=PLAINTEXT://x.x.x.x:9092
作者:富士山下2020
链接:www.jianshu.com/p/03e9b441e…
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。