docker安装kafka(先安装zookeeper)
kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。
kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个parition内是保证消息有序。
每新写一条消息,kafka就是在对应的文件append写,所以性能非常高。
下面我带大家用docker安装kafka
注意:
我们
- 先安装zookeeper镜像
docker pull wurstmeister/zookeeper
- 安装kafka镜像
docker pull wurstmeister/kafka
- 安装可视化kafka管理工具
docker pull sheepkiller/kafka-manager
- 启动kafka-manager
docker run -d --name kafka-manager \--link zookeeper:zookeeper \--link kafka:kafka -p 9001:9000 \--restart=always \--env ZK_HOSTS=zookeeper:2181 \sheepkiller/kafka-manager
- 查看安装的镜像
docker images
- 启动kafka(192.168.217.143是你的本机IP)
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.217.143 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest
- 启动zookeeper,开始创建并启动容器
docker run -d --name zookeeper -p 2181:2181 -t zookeeper
测试kafka
- 查看所有运行的容器
docker ps
- 进入kafka容器内
docker exec -it dea19165a642 /bin/bash
- 创建一个topic 名为test01
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test01
- 查看我们的topic服务列表
bin/kafka-topics.sh --list --zookeeper zookeeper:2181
- 运行一个生产者发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test01
- 另外连接服务器,创建一个消费者接收消息
-
本地访问kafka
http://192.168.217.143:9001/clusters/xuyibo/topics
-
关于kafka——manneger的使用
https://www.cnblogs.com/frankdeng/p/9584870.html