docker 部署kafka,listeners配置

先看如何配置

############################# Socket Server Settings #############################

# The address the socket server listens on. If not configured, the host name will be equal to the value of
# java.net.InetAddress.getCanonicalHostName(), with PLAINTEXT listener name, and port 9092.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=INNER://:9092,OUTSIDE://:59092
advertised.listeners=INNER://<容器ip>:9092,OUTSIDE://<宿主机ip>:59092
listener.security.protocol.map=INNER:PLAINTEXT,OUTSIDE:PLAINTEXT
inter.broker.listener.name=INNER

 

配置说明

kafka对这两个参数的说明:

    • KAFKA_LISTENERS=PLAINTEXT://<addr>:<port>
      定义kafka的服务监听地址,addr可以为空,或者0.0.0.0,表示kafka服务会监听在指定地址。
    • KAFKA_ADVERTISED_LISTENERS
      kafka发布到zookeeper供客户端使用的服务地址,格式也是PLAINTEXT://<addr>:<port>,但是addr不能为空。
      如果KAFKA_ADVERTISED_LISTENERS没有定义,则是取的KAFKA_LISTENERS的值。
      如果KAFKA_LISTENERS的addr没有定义,则取的java.net.InetAddress.getCanonicalHostName()值。

  

结果是:

在容器内kafka服务 监听在两个端口9092和59092

容器网络使用<container>:9092访问kafka,主机网络使用<host>:59092访问kafka

 

容器启动: docker run -d -p 50001:22 -p 54000:4000 -p 52379:2379 -p 53000:3000 -p 59092:59092 -p 58300:8300 --name mydocker.tidb --privileged=true 867449966e58 /usr/sbin/init

 



posted @ 2023-05-11 15:56  我的天啊~  阅读(886)  评论(0编辑  收藏  举报