基础支持 安装 zookeeper
docker pull wurstmeister/zookeeper
运行zookeeper
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
# 如果想修改 zookeeper 配置文件
docker exec -it name /bin/bash
cd /opt/zookeeper-3.4.13/conf/zoo.cfg
安装 kafka
docker pull wurstmeister/kafka
运行 kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.198.130:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.198.130:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
# -e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
# -e KAFKA_ZOOKEEPER_CONNECT=192.168.198.130:2181/kafka 配置zookeeper管理kafka的路径10.9.44.11:2181/kafka
# -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.198.130:9092 把kafka的地址端口注册给zookeeper
# -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
# -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
命令创建topic、生产者、消费者
docker exec -it name /bin/bash
cd /opt/kafka
# 命令行创建 kafka topic
# ./kafka-topics.sh --create --zookeeper 192.168.198.130:2181 --replication-factor 1 --partitions 1 --topic mykafka
# 命令行创建 kafka 消息生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
# 命令行创建 kafka 消息消费者
bin/kafka-console-consumer.sh --zookeeper 192.168.198.130:2181 --topic mykafka --from-beginning
#查看所有的消费组
./kafka-consumer-groups.sh --bootstrap-server ip:port --list
#查看消费组详情
./kafka-consumer-groups.sh --bootstrap-server ip:port --describe --group {groupName}
#删除消费组
./kafka-consumer-groups.sh --bootstrap-server ip:port --delete --group {groupName}
#设置具体消费者组下topic offset
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --execute --reset-offsets --to-latest --group ${consumer_group_name} --topic ${topic_name}
offset部分重设策略
–to-earliest:把位移调整到分区当前最小位移
–to-latest:把位移调整到分区当前最新位移
–to-current:把位移调整到分区当前位移
–to-offset : 把位移调整到指定位移处
–shift-by N: 把位移调整到当前位移 + N处,注意N可以是负数,表示向前移动
–to-datetime :把位移调整到大于给定时间的最早位移处,datetime格式是yyyy-MM-ddTHH:mm:ss.xxx
–by-duration :把位移调整到距离当前时间指定间隔的位移处,duration格式是PnDTnHnMnS
–from-file :从CSV文件中读取调整策略
RabbitMq
进入docker hub镜像仓库地址:https://hub.docker.com
搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangement”的版本(包含web管理页面)
# 如果 报超时的话 可以 修改下镜像源
docker pull rabbitmq:3.9.11-management
# 启动集群
docker run -d --name rabbitmq3.9.11 -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
###4369, 25672 (Erlang发现&集群端口) 5672, 5671 (AMQP端口) 15672 (web管理后台端口) 61613, 61614 (STOMP协议端口) 1883, 8883 (MQTT协议端口)
# 启动单机
docker run -d --name rabbitmq3.9.11 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest 2888deb59df
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
2888deb59df 容器id.docker images 自行查看
本文含有隐藏内容,请 开通VIP 后查看