1. 前言
本文介绍如何在linux下利用docker快速搭建kafa单机集群
2.项目
地址:https://github.com/wurstmeister/kafka-docker
3.环境安装
3.1 安装docker-compose
1)安装Python3
参考Python系列
2)安装相关lib
Ubuntu:
sudo apt install -y libffi-dev python-dev gcc*
Centos:
sudo yum install -y python-devel libffi-devel gcc*
3)安装docker-compose
sudo pip3 install docker-compose
3.2 启动Kafka以及相关命令
3.2.1 运行docker的kafka容器
1)下载git工程
git clone https://github.com/wurstmeister/kafka-docker
2)进入目录
cd kafka-docker
3.2.2 配置docker-compose.yml
执行:sudo vim docker-compose.yml,修改为如下内容:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
ports:
- "9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: {宿主机的ip}
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LOG_SEGMENT_BYTES: 1000000
KAFKA_LOG_ROLL_HOURS: 2
KAFKA_LOG_RETENTION_HOURS: 2
KAFKA_LOG_CLEANER_ENABLE: "true"
KAFKA_LOG_CLEANER_ENABLE: "true"
KAFKA_LOG_CLEANER_DELETE_RETENTION_MS: 3600000
KAFKA_LOG_INDEX_SIZE_MAX_BYTES: 1000000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
3.2.3 启动kafka
1)启动kafka
docker-compose up -d
2) 查看是否启动成功
docker-compose ps
看到这里表明已经启动成功了,图中启动了一个zookeeper和以个kafka容器
zookeeper端口:2181
kafka1端口:1000
3)扩容kafka节点
#扩容kafka的docker实例为3
docker-compose scale kafka=3
4)停止docker-compose启动的容器
docker-compose stop
3.3 kafka相关操作
3.3.1. 启动kafka的docker shell
cd ${工作目录}/kafka-docker/ && start-kafka-shell.sh
首次启动会下载相关镜像,到这里意味着可以使用相关命令了
3.3.2 使用kafka相关命令
1)创建topic
创建一个分区数为8,副本数为2的topic
kafka-topics.sh --create --topic topic8 --partitions 8 --zookeeper {宿主机ip} --replication-factor 2
2)查看topic
查看所有已创建的topic
kafka-topics.sh --list --zookeeper {宿主机ip}
3)向topic生产消息
向topic8发送生产消息
kafka-console-consumer.sh --topic topic8 --group g1 --broker-list {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002
4)向topic消息消息使用group:g1向topic8消费消息
kafka-console-consumer.sh --topic topic8 --bootstrap-server {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002
5) 查看指定的topic
kafka-topics.sh --describe --topic topic8 --zookeeper {宿主机ip}
6)查看topic的消费情况
kafka-consumer-groups.sh --bootstrap-server {宿主机ip}:1000,{宿主机ip}:1001,{宿主机ip}:1002 --group g1 --describe
7)删除某个topic
kafka-topics.sh --delete --zookeeper {宿主机ip} --topic topic8
博主:测试生财
座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。
csdn:https://blog.csdn.net/ccgshigao
博客园:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
本文同步分享在 博客“测试生财”(51CTO)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4900223/blog/4871539