本文介绍centos7环境下,通过 docker 安装 kafka 的步骤,让大家能快速体验下 kafka
安装docker
可按官方安装说明文档安装
或者按以下步骤安装
1.卸载旧的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装yum-utils package (会提供 yum-config-manager 应用程序) 和设置仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装最新版docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4.或者安装指定版本
yum list docker-ce --showduplicates | sort -r
显示如下:
docker-ce.x86_64 3:24.0.0-1.el8 docker-ce-stable
docker-ce.x86_64 3:23.0.6-1.el8 docker-ce-stable
<...>
执行命令安装指定版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
例如:
安装docker,版本号19.03.2
yum install docker-ce-19.03.2 docker-ce-cli-19.03.2 containerd.io docker-buildx-plugin docker-compose-plugin
5.启动docker
sudo systemctl start docker
6.校验是否成功启动
docker -v
或者
sudo docker run hello-world
7.配置开机自启动
sudo systemctl enable docker
8.配置镜像加速
方法一:
sudo mkdir -p /etc/docker
vim daemon.json
加入以下内容
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
加载配置和重启
sudo systemctl daemon-reload
sudo systemctl restart docker
方法二:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
查看镜像地址(找到Registry字段即是)
docker info
安装kafka
kafka测试环境推荐4g,生产环境推荐8g及以上
1.创建网络
docker network create kafka-net
2.安装zookeeper(kafka依赖于zookeeper)
docker run -d \
--name zookeeper \
--network kafka-net \
-p 2181:2181 \
-e ZOOKEEPER_CLIENT_PORT=2181 \
wurstmeister/zookeeper
3.安装kafka,已经自带jdk
-
获取hostname的值
hostname -I | awk '{print $1}'
-
安装kafka
docker run -d \ --name kafka \ --network kafka-net \ -p 9092:9092 \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<HOST_IP>:9092 \ -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \ -e KAFKA_AUTO_CREATE_TOPICS_ENABLE="true" \ -e KAFKA_HEAP_OPTS="-Xmx512m -Xms256m" \ wurstmeister/kafka其中<HOST_IP>替换为hostname -I | awk '{print $1}'命令的输出值
4.测试
- 进入 Kafka 容器
docker exec -it kafka /bin/bash
- 创建测试 Topic
cd /opt/kafka/bin
./kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--replication-factor 1 \
--partitions 1 \
--topic test-topic
- 发送消息
./kafka-console-producer.sh \
--broker-list localhost:9092 \
--topic test-topic
执行以上命令后,输入任意文本后按 Ctrl+D 发送
- 消费消息
./kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning
其中,--from-beginning:表示可以消费消费者启动之前生产者发送的消息
大功告成!