Dockerized Asp.net Core无法连接到WSL中的主机的Kafka

时间:2019-11-09 04:44:16

标签: asp.net docker apache-kafka

您是否知道为什么我的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非常简单。

1 个答案:

答案 0 :(得分:2)

您需要使用容器内的主机地址,而不是解析为容器本身的localhost

然后,您需要编辑Kafka的server.properties以接受外部流量

listeners=PLAINTEXT://0.0.0.0:9092 
advertised.listeners=PLAINTEXT://external.ip:9092