基于Docker搭建分布式消息队列Kafka
本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含Zookeeper + Kafka + Kafka-manger
#获取镜像
· zookeeper镜像:zookeeper:3.4.9
· kafka镜像:wurstmeister/kafka:0.10.2.0
· kafka-manager镜像:kafka-manager:latest
# 建立Zookeeper容器
这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器。
docker run --name some-zookeeper \
--restart always \
-p 2181:2181 \
-d zookeeper
默认的,容器内配置文件在,/conf/zoo.cfg,数据和日志目录默认在/data 和 /datalog,需要的话可以将上述目录映射到宿主机的可靠文件目录下。
参考:https://hub.docker.com/_/zookeeper/
# 建立kafka节点
这里同样只做一个简单的单点kafka
docker run --name kafka \
-p 9092:9092 \
-e KAFKA_ADVERTISED_HOST_NAME=kafka01 \
-e KAFKA_CREATE_TOPICS="test:1:1" \
-e KAFKA_ZOOKEEPER_CONNECT=100.100.16.231:2181 \
-d wurstmeister/kafka
参考: https://hub.docker.com/r/wurstmeister/kafka/
# 创建Kafka管理节点
kafka-manager有图形化UI,可以方便的监控集群状态,调整队列配置
docker run -itd \
--restart=always \
--name=kafka-manager \
-p 9000:9000 \
-e ZK_HOSTS="100.100.16.231:2181" \
sheepkiller/kafka-manager
容器启动以后访问主机的9000端口,http://xxx:9000
首次进入需要添加集群
配置好以后,通过Zookeeper该管理节点可以读取到整个Kafka集群的信息,并且我们可以通过JMX直接看到集群的健康状态
# 读写验证
读写验证的方法有很多,这里我们用kafka容器自带的工具来验证,首先进入到kafka容器的交互模式:
docker exec -it kafka /bin/bash
创建一个主题:
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 100.100.16.231:2181 --replication-factor 1 --partitions 1 --topic my-test
查看刚创建的主题:
/opt/kafka/bin/kafka-topics.sh --list --zookeeper 100.100.16.231:2181
发送消息:
/opt/kafka/bin/kafka-console-producer.sh --broker-list 100.100.16.231:9092 --topic my-test
This is a message
This is another message
读取消息:
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 100.100.16.231:9092 --topic my-test --from-beginning
参考:https://kafka.apache.org/quickstart
作者:华为云享专家 菊花茶
相关文章
- Docker安装Redis
- Kafka 删除topic_kafka自动创建topic
- Kafka如何删除topic中的部分数据_kafka修改topic副本数
- Docker 离线安装_docker官方中文文档
- docker 离线安装_Docker安装
- Docker - docker-compose方式搭建高效的开发环境
- docker 启动失败:Failed to start Docker Application Container Engine
- 只有 3MB 的自签名证书制作 Docker 工具镜像:Certs Maker
- 【Docker】基于Rancher快速部署docker容器管理平台
- Docker关闭容器命令(docker stop)
- 【Docker 系列】docker 学习 四,镜像相关原理
- 【Docker 系列】docker 学习 五,容器数据卷
- kafka学习一:docker安装kafka
- Docker网络模式
- Docker - docker-compose搭建ELK服务
- 企业级Docker镜像仓库的管理和运维
- docker-compose 文件参考详解程序员
- mysql主从基于docker和django实现读写分离
- docker能用来干嘛详解架构师
- springboot整合docker部署(两种构建Docker镜像方式)详解编程语言
- 使用Docker Compose部署应用(详解版)
- 一张图搞懂容器所有操作 – 每天5分钟玩转 Docker 容器技术(26)
- Oracle 数据流轻松集成 Kafka 服务:提高数据传输效率(oracle到kafka)
- Linux下搭建Kafka Stream架构的实践(linux kafka)
- Kafka连接Oracle数据库提高数据处理能力(kafka连oracle)
- Oracle与Kafka新一代数据处理技术(oracle与kafka)
- Oracle与Kafka的联合应用突破传统数据处理极限(oracle与kafka)