访问Docker内的Kafka的几种办法

Question

之前在构建自己的Kakfa-Cluster的Docker镜像时,遇到一个映射关系的问题。其实,感觉这是Kafka的一个Bug。
即,Kafka在容器内配置localhost:9092,并把端口映射出去。Docker外是无法访问到的。


Solutions

  • 使用advertised.host.nameadvertised.host.port 外网映射
requirement failed: inter.broker.listener.name must be a listene
需要配置两个端口
  • 使用linstenersadvertised.linsteners 外网映射
  • 将Docker Container 的ID写在本地

others

docker run -d --name kafka3 --publish 9093:9093 --link infallible_khorana  --env       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT --env KAFKA_ADVERTISED_PROTOCOL_NAME=OUTSIDE --env KAFKA_ZOOKEEPER_CONNECT=infallible_khorana:2181,infallible_khorana:2182,infallible_khorana:2183  --env       KAFKA_PROTOCOL_NAME=INSIDE --env KAFKA_ADVERTISED_HOST_NAME=192.168.1.16  --env KAFKA_ADVERTISED_PORT=9093    wurstmeister/kafka:latest

 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.16
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ADVERTISED_PROTOCOL_NAME: OUTSIDE
      KAFKA_PROTOCOL_NAME: INSIDE
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      
docker run --name kafka -e HOST_IP=localhost -e KAFKA_ADVERTISED_PORT=9092 -e KAFKA_BROKER_ID=1 -e ZK=zk -p 9092 --link zookeeper:zk -t wurstmeister/kafka

listeners=OUTSIDE://:9093,INSIDE://:9092
advertised.listeners=OUTSIDE://192.168.1.16:9093,INSIDE://:9092
listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
inter.broker.listener.name=INSIDE

References

[1]. wurstmeister/kafka
[2] spotify/kafka
[3] Containerized Kafka client errors when producing messages to the host Kafka server
[4] How do I set security.inter.broker.protocol when I have two Kafka brokers with different protocols?
[5] Exposing Kafka on two different networks

[] Java操作Kafka执行不成功的解决方法,Kafka Broker Advertised.Listeners属性的设置
[] 基于docker部署的微服务架构(五): docker环境下的zookeeper和kafka部署
[] Kafka集群的安装和使用
[] 使用Docker快速搭建Kafka开发环境
[] Docker快速搭建Kafka 1.x集群
[] kafka的advertised.host.name参数 外网访问配置
[] docker里面启动kafka并做端口映射,容器外无法连接,问题解决记录
[] Docker中搭建Kafka集群以及让外网访问
[] Kafka集群部署(Docker容器的方式)
[] Kafka-docker: Steps to run Apache Kafka Using Docker
[] Kafka跨网络访问设置
[] docker启动kafka
[] kafka-2.11-2.00 生产消费创建主题.md
[] kafka使用常见报错及解决方法

Docker 网络映射

[1]. Docker的端口映射-p在生产环境是否真的可用?
[2] Docker 网络模式为host是遇到的一些坑(求解决之法)
[3] Use host networking(official)
[4]. Docker的四种网络模式
[5]. docker的host、bridge网络类型
[6]. 使用docker-compose 大杀器来部署服务 上
[7]. Docker run reference(official)
[8] Docker Compose安装以及入门
[9] Docker学习总结之Run命令介绍
[10] 使用不同Docker网络模型搭建Zookeeper集群

你可能感兴趣的:(14.,大数据,-------14.1.,Kafka,15.,容器,-------15.1.,Docker)