【问题标题】:kafka client could connect to kafka server run in the docker containerkafka 客户端可以连接到在 docker 容器中运行的 kafka 服务器
【发布时间】:2020-07-26 20:38:49
【问题描述】:

我正在使用 docker 通过以下命令运行 zookeeper 和 kafka 实例

docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper
docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper -e ADVERTISED_HOST_NAME=localhost -e HOST_NAME=localhost  debezium/kafka 

ADVERTISED_HOST_NAME 在容器外部暴露给 localhost。

the kafka is connected to zookeeper and kafka output is as followed

        Using ZOOKEEPER_CONNECT=172.17.0.3:2181
    Using KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
    2020-07-26 03:56:23,160 - INFO  [main:Log4jControllerRegistration$@31] - Registered kafka:type=kafka.Log4jController MBean
    2020-07-26 03:56:26,313 - INFO  [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
    2020-07-26 03:56:26,554 - INFO  [main:LoggingSignalHandler@72] - Registered signal handlers for TERM, INT, HUP
    2020-07-26 03:56:26,580 - INFO  [main:Logging@66] - starting
    2020-07-26 03:56:26,593 - INFO  [main:Logging@66] - Connecting to zookeeper on 172.17.0.3:2181
    2020-07-26 03:56:26,700 - INFO  [main:Logging@66] - [ZooKeeperClient Kafka server] Initializing a new session to 172.17.0.3:2181.

连接kafka服务器的代码如下

const { Kafka,logLevel,CompressionCodecs,CompressionTypes } = require('kafkajs');

const kafka1 = new Kafka({
  clientId: 'my-app',
  brokers: ['localhost:9092']
});

但是 kafka 客户端可以连接到 kafka 服务器并出现错误“{"level":"ERROR","timestamp":"2020-07-26T02:53:30.472Z","logger":"kafkajs","message":"[BrokerPool] Failed to connect to seed broker, trying another broker from the list: Closed connection","retryCount":0,"retryTime":313}"

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    此行为与--link 标志有关。如果您想在 docker 网络之外生成/使用数据,则需要为这些 docker run 命令添加大量参数。

    但是,有一种简单(呃)的方法可以做到这一点。看看这个docker-compose 文件!将图像名称替换为您想要的名称(例如:confluentinc/cp-zookeeper:5.5.1debezium/zookeeper),删除您不需要的服务,一切顺利!

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 1970-01-01
      • 2017-07-10
      • 2017-04-03
      • 2020-11-02
      • 2020-02-09
      • 2021-06-17
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多