zookeeper kafka
docker-compose安装kafka集群和kafka-manager管理界面
2018年05月25日 10:04:17 TBC_博客 阅读数:2807
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_31908303/article/details/80447383
安装前提:
- linux发行版
- 已经安装好docker
- 已经安装好docker-compose
搭建步骤
1. 新建一个docker-compose.yml文件内容如下
2. 内容做必要的修改
- 1
- 2
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper ## 镜像
ports:
- "2181:2181" ## 对外暴露的端口号
kafka:
image: wurstmeister/kafka ## 镜像
volumes:
- /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.150.130 ## 修改:宿主机IP
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ## 卡夫卡运行是基于zookeeper的
kafka-manager:
image: sheepkiller/kafka-manager ## 镜像:开源的web管理kafka集群的界面
environment:
ZK_HOSTS: 192.168.150.130 ## 修改:宿主机IP
ports:
- "9000:9000" ## 暴露端口
3. 运行
- 1
/* 运行单机版kafka */
docker-compose up -d
/* 运行kafka集群模式*/
/* 由于指定了kafka对外暴露的端口号,增加集群节点会报端口冲突的错误,请将kafka暴露的端口号删掉后再执行如下命令*/
/* 自己指定kafka的节点数量 */
docker-compose scale kafka=3
参考连接-github
参考连接-kafka-docker
参考连接-docker-hub
参考连接-docker官方文档
安装过程
此处假定读者已经熟练使用docker、docker-compose等工具,所以关于docker的知识就不再赘述。
- 下载zookeeper镜像:
docker pull wurstmeister/zookeeper
- 下载kafka镜像:
docker pull wurstmeister/kafka
-
在自己选的目录下创建一个docker-compose.yml文件,
docker-compose.yml
⚠️ 注意上述内容与
https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose.yml
中有一处区别,即倒数第4行中的 KAFKA_ADVERTISED_HOST_NAME 改为
KAFKA_ADVERTISED_LISTENERS ,其后的ip地址使用宿主机上的 docker-machine ip 地址。
- 启动docker-compose
docker-compose up -d
- 启动多个kafka 节点,比如3个
docker-compose scale kafka=3
可用性测试
自此,如果没有出现什么错误,通过docker ps 应该可以看到已经成功启动了一个zookeeper容器,三个Kafka容器。
- 通过指定容器名(假设容器名为 wurkafka_kafka_1)进入一个Kafka容器:
docker exec -it wurkafka_kafka_1 /bin/bash
- 创建一个topic(其中假设zookeeper容器名为 wurkafka_zookeeper_1,topic名为test),输入:
$KAFKA_HOME/bin/kafka-topics.sh --create --topic test \
--zookeeper wurkafka_zookeeper_1:2181 --replication-factor 1
--partitions 1
- 查看新创建的topic:
$KAFKA_HOME/bin/kafka-topics.sh --zookeeper wurkafka_zookeeper_1:2181 \
--describe --topic test
- 发布消息: (输入若干条消息后 按^C 退出发布)
$KAFKA_HOME/bin/kafka-console-producer.sh --topic=test \
--broker-list wurkafka_kafka_1:9092
- 接收消息:
$KAFKA_HOME/bin/kafka-console-consumer.sh \
--bootstrap-server wurkafka_kafka_1:9092 \
--from-beginning --topic test
如果接收到了发布的消息,证明整个部署正常,就可以正式开始开发工作了。