您是否知道为什么我的dockerized asp.net核心应用程序无法连接到kafka的localhost:9092,但如果未进行dockerized则它可以成功连接?
dckerized asp.net核心和kafka都在WSL中运行。 例如
docker run -p 5001:80 --rm my-api
my bootstrap server is: BootstrapServers = "127.0.0.1:9092"
错误:
%3|1573272853.362|FAIL|rdkafka#producer-1| [thrd:127.0.0.1:9092/bootstrap]: 127.0.0.1:9092/bootstrap: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT)
我要不在docker内部运行asp.net api。 它可以成功连接,因为127.0.0.1非常简单。
答案 0 :(得分:2)
您需要使用容器内的主机地址,而不是解析为容器本身的localhost
然后,您需要编辑Kafka的server.properties以接受外部流量
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://external.ip:9092