docker 安装运行 kafka、zookeeper、rabbitmq

发布于:2023-01-03 ⋅ 阅读:(290) ⋅ 点赞:(0)

基础支持 安装 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 后查看

网站公告

今日签到

点亮在社区的每一天
去签到