Docker安装kafka

Docker安装kafka

1、启动zookeeper容器

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

2、启动kafka容器

docker run  -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \ 
-e KAFKA_ZOOKEEPER_CONNECT=124.71.206.65:2181 \ 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://124.71.206.65:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka 

3、参数意义

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

-e KAFKA_ZOOKEEPER_CONNECT=124.71.206.65:2181/kafka 配置zookeeper管理kafka的路径124.71.206.65:2181/kafka

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://124.71.206.65:9092 把kafka的地址端口注册给zookeeper

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口

4、kafka容器启动报错

sudo docker logs 容器id

报错如下:

[2022-03-24 15:37:19,696] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient)
[2022-03-24 15:37:19,699] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
	at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:271)
	at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:125)
	at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1948)
	at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:431)
	at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:456)
	at kafka.server.KafkaServer.startup(KafkaServer.scala:191)
	at kafka.Kafka$.main(Kafka.scala:109)
	at kafka.Kafka.main(Kafka.scala)
[2022-03-24 15:37:19,702] INFO shutting down (kafka.server.KafkaServer)

连接zookeeper超时。

5、解决

将配置中 KAFKA_ZOOKEEPER_CONNECT的zookeeper的端口设置为外网ip,因为127.0.0.1或0.0.0.0相对kafka镜像来说是自己的镜像内部的内部ip,docker镜像外部无法访问。

我上面配置的124.71.206.65这个ip是公网的地址。 而对于docker容器内的ip需要的是内网ip即可。

ipconfig -a    // 即 192.168.0.12

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.12  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f816:3eff:fe43:428d  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:43:42:8d  txqueuelen 1000  (Ethernet)
        RX packets 4791727  bytes 3513888397 (3.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4164455  bytes 538220021 (513.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

将images镜像删除,把上面配置改为:

docker run  -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \ 
-e KAFKA_ZOOKEEPER_CONNECT=192.168.0.12:2181 \ 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://:9092 -t wurstmeister/kafka

6、查询运行状态

sudo docker ps -a 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值