安装rocketmq
- 配置docker-compose配置文件
version: '3.9'
services:
namesrv:
image: test.aiet.top:29021/hrkj/rocketmq:5.3.2
container_name: rmqnamesrv
ports:
- "9876:9876"
networks:
- rocketmq
volumes:
- /aiet/rocketmq/data/namesrv/logs:/root/logs
- /aiet/rocketmq/data/namesrv/store:/root/store
command: sh mqnamesrv
healthcheck:
test: ["CMD", "sh", "-c", "nc -z localhost 9876"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
ulimits:
nofile:
soft: 65535
hard: 65535
deploy:
resources:
limits:
cpus: '2.0'
memory: 2G
reservations:
memory: 1G
restart: unless-stopped
broker:
image: test.aiet.top:29021/hrkj/rocketmq:5.3.2
container_name: rmqbroker
ports:
- "10909:10909"
- "10911:10911"
- "10912:10912"
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
- JAVA_OPTS=-server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m
depends_on:
- namesrv
networks:
- rocketmq
volumes:
- /aiet/rocketmq/data/broker/logs:/root/logs
- /aiet/rocketmq/data/broker/store:/root/store
- /aiet/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf
command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
healthcheck:
test: ["CMD", "sh", "-c", "nc -z localhost 10911 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 60s
ulimits:
nofile:
soft: 65535
hard: 65535
nproc:
soft: 32000
hard: 32000
deploy:
resources:
limits:
cpus: '4.0'
memory: 6G
reservations:
memory: 4G
restart: unless-stopped
proxy:
image: test.aiet.top:29021/hrkj/rocketmq:5.3.2
container_name: rmqproxy
networks:
- rocketmq
depends_on:
- broker
- namesrv
ports:
- "8080:8080"
- "8081:8081"
restart: unless-stopped
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
- JAVA_OPTS=-server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m
command: sh mqproxy
healthcheck:
test: ["CMD", "sh", "-c", "nc -z localhost 8080 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
ulimits:
nofile:
soft: 65535
hard: 65535
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
memory: 512M
networks:
rocketmq:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
volumes:
namesrv-data:
broker-data:
proxy-data:
1. nameserver端口9876,服务端使用此端口和rocketmq通信,如果你的服务端和rocketmq不在同一台服务器,此端口别忘记在防火墙打开和安全组打开,
2. networks网段172.28.0.0/16,如果被占用记得调整下
3. 数据卷目录:/aiet/rocketmq/data,改成自己的
安装RocketMQ Dashboard控制台
- 拉取镜像,拉取不动,搭建私有仓库,把镜像推送到私有仓库拉取,不懂联系我
docker pull apacherocketmq/rocketmq-dashboard:latest
docker pull test.aiet.top:29021/hrkj/rocketmq-dashboard:latest
- 运行容器,如果rocketmq和控制台在同一台服务器,使用下面命令,连接nameserver的端口
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=58.49.144.16:9876" -p 29100:8080 -t test.aiet.top:29021/hrkj/rocketmq-dashboard:latest
验证
进入broker容器创建一个mq管理员Topic
# 进入容器
docker exec -it rmqbroker bash
创建Topic
sh mqadmin updatetopic -t SMS_SEND_TOPIC -c DefaultCluster
rocketmq控制台监控到了