gpt4 book ai didi

python - 将消息从容器发布到在容器外部运行的kafka

转载 作者:行者123 更新时间:2023-12-02 21:12:33 25 4
gpt4 key购买 nike

我有一个docker容器镜像,该镜像会生成一些有关kafka主题的消息,该消息在同一节点/机器中的容器外部运行。
当我运行docker容器向kafka主题发布一些消息时,出现以下错误。

[root@lm--mro-cloudnative--central docker_producer]# docker runtest-producer %3|1544419029.623|FAIL|rdkafka#producer-1|[thrd:lm--mro-cloudnative--central.novalocal:9092/0]:lm--mro-cloudnative--central.novalocal:9092/0: Failed to resolve'lm-cloudnative--central.novalocal:9092': Name or service notknown (after 342076146ms in state INIT)

%3|1544419029.623|ERROR|rdkafka#producer-1|[thrd:lm--mro-cloudnative--central.novalocal:9092/0]:lm--cloudnative--central.novalocal:9092/0: Failed to resolve'lm-cloudnative--central.novalocal:9092': Name or service notknown (after 342076146ms in state INIT)


我的生产者python代码如下,( producer.py )
from confluent_kafka import Producer
import json

data = {"name":"LTE", "parameters":{"Period":1},"targets":[88054]}

conf = {'bootstrap.servers': 'localhost:9092',
'default.topic.config': {'produce.offset.report': True, 'request.required.acks' : -1}}
p = Producer(**conf)

json_data = json.dumps(data)
p.produce('mro_topic', key='MRO', value=json_data, callback=None)
p.flush(30)
Dockerfile
FROM registry-access-redhat-com.repo.lab.pl.**-**.com/rhel7.4

# CONFIGURE YUM
RUN rm -f /etc/yum.repos.d/*
ADD resources/yum.repos.d/* /etc/yum.repos.d/
RUN echo "sslverify=false" >> /etc/yum.conf


RUN yum install -y python-pip
RUN pip install --index-url https://repo.lab.pl.**.com/api/pypi/python/simple/ pip
RUN pip install --index-url https://repo.lab.pl.**.com/api/pypi/python/simple/ requests
RUN pip --version
RUN pip install --index-url https://repo.lab.pl.**.com/api/pypi/python/simple/ setuptools

RUN pip install --index-url https://repo.lab.pl.**.com/api/pypi/python/simple/ confluent-kafka
RUN pip install --index-url https://repo.lab.pl.**.com/api/pypi/python/simple/ avro
ADD producer.py /
CMD [ "python", "producer.py" ]
docker build -t测试生产者。
docker 运行测试制作者
我有想念的东西吗?

最佳答案

当host为“localhost:9092”时,它将无法工作,因为它指向同一docker容器而不是节点/机器。

解:
而不是本地主机使用节点/计算机的IP地址,然后它应该工作。

关于python - 将消息从容器发布到在容器外部运行的kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53700155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com