docker上启动kafka

在docker上启动kafka,是因为最近我们开发的程序需要部署到k8s,在k8s上连接kafka,连接失败,因此我先搭建个环境,以供后续还原问题,解决问题。



一、docker上启动kafka

1.下载zookeeper镜像

docker pull wurstmeister/zookeeper

2.下载kafka镜像

docker pull wurstmeister/kafka

3.启动zookeeper

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

4.启动kafka

docker run -d --name kafka --publish 9092:9092 --link zookeeper:zookeeper -e KAFKA_BROKER_ID=1  -e HOST_IP=192.168.65.7  -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.65.7:9092  -e KAFKA_ADVERTISED_HOST_NAME=192.168.65.7 -e KAFKA_ADVERTISED_PORT=9082  --restart=always  -t  wurstmeister/kafka

部分参数含义:

KAFKA_BROKER_ID=1 kafka在集群中的唯一标识
KAFKA_ZOOKEEPER_CONNECT=zookeeper:12181 监听zookeeper的地址 
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.65.7:19092 kafka服务器的地址

5.进入kafka容器

1.先查看kafka镜像ID:
docker ps -a
在这里插入图片描述
2.进入容器
docker exec -it ${CONTAINER ID} /bin/bash
3.进入kafka的bin目录下
cd /opt/kafka_2.18/bin
4.创建topic
./kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
5.运行生产者
./kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
在这里插入图片描述
6.消费topic
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic mykafka
在这里插入图片描述

6.问题记录

1.当第一次启动kafka时报以下错误,连接超时的错,我报这错是因为我启动命令错了:
 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-01-20 07:33:19,615] INFO shutting down (kafka.server.KafkaServer)
[2022-01-20 07:33:19,645] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser)
[2022-01-20 07:33:19,646] INFO shut down completed (kafka.server.KafkaServer)
[2022-01-20 07:33:19,647] ERROR Exiting Kafka. (kafka.Kafka$)
[2022-01-20 07:33:19,657] INFO shutting down (kafka.server.KafkaServer)
INFO Opening socket connection to server 192.168.65.7/192.168.65.7:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
报错的启动命令:
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=192.168.65.7:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.65.7 --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka

总结

启动kafka遇到了很多问题,一直以为自己是网络不通,防火墙没开之类的,最后发现一直是自己的运行命令不正确,菜鸟的我,还需继续努力呀。

要在Docker启动Kafka,你可以按照以下步骤进行操作: 1. 下载Zookeeper镜像和Kafka镜像。你可以使用命令`docker pull zookeeper`下载Zookeeper镜像,使用命令`docker pull wurstmeister/kafka`下载Kafka镜像。 2. 启动Zookeeper容器。你可以使用命令`docker run -d --name zookeeper -p 2181:2181 -t zookeeper`启动Zookeeper容器。 3. 启动Kafka容器。你可以使用命令`docker run -d --name kafka --publish 9092:9092 --link zookeeper:zookeeper -e KAFKA_BROKER_ID=1 -e HOST_IP=你的服务器IP -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://你的服务器IP:9092 -e KAFKA_ADVERTISED_HOST_NAME=你的服务器IP -e KAFKA_ADVERTISED_PORT=9082 --restart=always -t wurstmeister/kafka`启动Kafka容器。确保将命令中的"你的服务器IP"替换为你的实际服务器IP地址。 这样,你就成功在Docker启动Kafka。注意,这是一个单机模式,适用于资源有限的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [如何使用 docker 快速启动一个 kafka 应用?](https://blog.csdn.net/zhy1379/article/details/124109569)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker启动kafka](https://blog.csdn.net/XIAOHUI_ID/article/details/122662020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值