gpt4 book ai didi

docker - 无法连接到网络外的kafka

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

我正在尝试将我的工作连接到一个容器中,该容器将事件发送到另一个容器中的 kafka 集群。
无论我尝试了什么,我都无法将事件发送到 kafka 主题
我已经尝试 telnet 和 kafkacat 到我的 kafka 的地址监听器端口,一切正常:

Telnet output

Kafkacat output

这是我的工作撰写文件,“172.16.33.91”是我的本地 IP 地址:

version: '3'
services:
events-processor:
build:
context: ./events-processor
extra_hosts:
- "host:172.16.33.91"
restart: unless-stopped

这是我的工作代码,它将数据从 1 -> 1000 发送到现有主题 数字测试 :
from time import sleep
from json import dumps
from kafka import KafkaProducer

if __name__=="__main__":
producer = KafkaProducer(bootstrap_servers=['host:9093'],
value_serializer=lambda x: dumps(x).encode('utf-8'))
for e in range(1000):
data = {'number' : e}
producer.send('numtest', value=data)
print(data)
sleep(5)

这是我的 kafka-zookeeper 撰写文件:
version: '3'

services:
zookeeper:
image: confluentinc/cp-zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
volumes:
- zk-data:/var/lib/zookeeper/data
- zk-logs:/var/lib/zookeeper/log
- secrets:/etc/zookeeper/secrets
restart: unless-stopped

kafka:
image: confluentinc/cp-kafka
depends_on:
- zookeeper
ports:
- "9093:9093"
environment:
KAFKA_BROKER_ID: 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,EXTERNAL://:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_LISTENERS: INTERNAL://:9092,EXTERNAL://:9093
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
volumes:
- kafka-data:/var/lib/kafka/data
- secrets:/etc/kafka/secrets
restart: unless-stopped

volumes:
zk-logs: {}
zk-data: {}
kafka-data: {}
secrets: {}

有人知道我做错了什么吗?任何帮助表示赞赏!

最佳答案

我记得遇到过类似的连接问题。事实证明,为了让您的容器能够访问主机上的端口,您可能需要向防火墙添加额外的规则以将其打开。

例如,使用 iptables,您可以添加如下规则,以允许您的主机接受来自 docker 容器的请求。

-A INPUT -i docker0 -j ACCEPT

或者,您可以将您的作业容器与您的 kafka/zookeeper 放在同一个 docker 网络上。通过将您的应用程序放在同一个 docker-compose 文件中,或使用通用的外部 docker 网络。

关于docker - 无法连接到网络外的kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60768433/

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