首页
运维
编程

小布江

首页
运维
编程
  • Kubernetes

  • 日常

    • K8s-Minio集群迁移
    • Docker构建多架构镜像
    • Minio备份及恢复
    • cert-manager自动签发Lets Encrypt
    • Ansible批量发送密钥
    • Containerd配置私有Harbor镜像仓库
    • kvm虚拟机修改密码
    • Nexus
    • Nginx之tcp转发
    • Arthas
    • 开启telnet登录
    • CPU亲和
    • Harbor复制镜像
    • KVM虚拟机根目录扩容
    • RabbitMQ RPM部署
    • RabbitMQ Docker-Compose部署
    • RocketMQ二进制部署
    • RocketMQ Docker-Compose部署
      • 1. 镜像
      • 2.创建broker配置、数据目录
        • 2.1 node1
        • 2.2 node2
        • 2.3 node3
      • 3.部署
        • 3.1 三个节点依序启动nameserver
        • 3.2 三个节点依序启动broker
        • 3.3 查看日志
        • 3.4查看端口
      • 4.验证
        • 4.1 查看集群状态
      • 5. Dashboard
    • Nginx版本升级
    • kvm虚拟机磁盘扩容
    • kafka双写
    • linux挂盘分区
    • Oracle-11g单机部署
    • GlusterFS部署
    • 主机磁盘管理
    • SSL自签证书管理
    • PicGo自建图床
    • Docker Mirrors
  • Prometheus

  • Cl

  • 运维
  • 日常
小布江
2024-07-14
目录

RocketMQ Docker-Compose部署

系统 架构 IP 主机 内核 Docker Compose version
Anolis OS(8.6) x86_64 172.16.5.81 node1 4.19.91-26 v2.34.0
Anolis OS(8.6) x86_64 172.16.5.82 node2 4.19.91-26 v2.34.0
Anolis OS(8.6) x86_64 172.16.5.83 node3 4.19.91-26 v2.34.0

# 1. 镜像

docker pull apache/rocketmq:5.3.1
docker pull apacherocketmq/rocketmq-dashboard:latest

# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED        SIZE
apacherocketmq/rocketmq-dashboard   latest    3027b0307640   2 months ago   411MB
apache/rocketmq                     5.3.1     0a6c08fe5390   5 months ago   370MB
1
2
3
4
5
6
7

# 2.创建broker配置、数据目录

# 2.1 node1

mkdir -p /opt/rocketmq/{nameserver,conf,store,logs}
mdkir -p /opt/rocketmq/nameserver/logs
---
cat >/opt/rocketmq/conf/broker-n0.conf<<EOF
# 集群名称
brokerClusterName = RaftCluster
# broker集群名称
brokerName=RaftNode00
# 监听端口
listenPort=30911
# namesrv地址列表
namesrvAddr=172.16.5.81:9876;172.16.5.82:9876;172.16.5.83:9876、
# 主题不存在时是否自动创建主题
autoCreateTopicEnable=true
# 订阅组不存在时是否自动创建订阅组
autoCreateSubscriptionGroup=true
# 数据存储根路径
storePathRootDir=/home/rocketmq/store/node00
# commitlog数据存储根路径
storePathCommitLog=/home/rocketmq/store/node00/commitlog
# 是否启用DLeger集群模式
enableDLegerCommitLog=true
# 与brokerName保持一致就好
dLegerGroup=RaftNode00
# dLeger集群下的节点配置,端口为listenPort+1000
dLegerPeers=n0-172.16.5.81:40911;n1-172.16.5.82:40911;n2-172.16.5.83:40911
# 当前节点在dLeger集群下的标识
dLegerSelfId=n0
# 服务端处理消息发送线程池数量
sendMessageThreadPoolNums=16
# 同步刷盘
flushDiskType=SYNC_FLUSH
EOF
---
cat>/opt/rocketmq/rmqnamesr.yaml<<EOF
version: '3'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesr
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m
    volumes:
      - /opt/rocketmq/nameserver/logs:/home/rocketmq/logs
    command: sh mqnamesrv
    restart: always
EOF
---
cat>/opt/rocketmq/rmqbroker.yaml<<EOF
version: '3'
services:
  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xmx2048m -Xms2048m -Xmn1024m
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf:/home/rocketmq/conf
    command: sh mqbroker -c /home/rocketmq/conf/broker-n0.conf
    restart: always
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

# 2.2 node2

mkdir -p /opt/rocketmq/{nameserver,conf,store,logs}
mdkir -p /opt/rocketmq/nameserver/logs
---
cat >/opt/rocketmq/conf/broker-n1.conf<<EOF
brokerClusterName = RaftCluster
brokerName=RaftNode00
listenPort=30911
namesrvAddr=172.16.5.81:9876;172.16.5.82:9876;172.16.5.83:9876
storePathRootDir=/home/rocketmq/store/node01
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
storePathCommitLog=/home/rocketmq/store/node01/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-172.16.5.81:40911;n1-172.16.5.82:40911;n2-172.16.5.83:40911
dLegerSelfId=n1
sendMessageThreadPoolNums=16
flushDiskType=SYNC_FLUSH
EOF
---
cat>/opt/rocketmq/rmqnamesr.yaml<<EOF
version: '3'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesr
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m
    volumes:
      - /opt/rocketmq/nameserver/logs:/home/rocketmq/logs
    command: sh mqnamesrv
    restart: always
EOF
---
cat>/opt/rocketmq/rmqbroker.yaml<<EOF
version: '3'
services:
  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xmx2048m -Xms2048m -Xmn1024m
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf:/home/rocketmq/conf
    command: sh mqbroker -c /home/rocketmq/conf/broker-n1.conf
    restart: always
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# 2.3 node3

mkdir -p /opt/rocketmq/{nameserver,conf,store,logs}
mdkir -p /opt/rocketmq/nameserver/logs
---
cat >/opt/rocketmq/conf/broker-n2.conf<<EOF
brokerClusterName=RaftCluster
brokerName=RaftNode00
listenPort=30911
namesrvAddr=172.16.5.81:9876;172.16.5.82:9876;172.16.5.83:9876
storePathRootDir=/home/rocketmq/store/node02
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
storePathCommitLog=/home/rocketmq/store/node02/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n0-172.16.5.81:40911;n1-172.16.5.82:40911;n2-172.16.5.83:40911
dLegerSelfId=n2
sendMessageThreadPoolNums=16
flushDiskType=SYNC_FLUSH
EOF
---
cat>/opt/rocketmq/rmqnamesr.yaml<<EOF
version: '3'
services:
  namesrv:
    image: apache/rocketmq:5.3.1
    container_name: rmqnamesr
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m # 本次为demo实际按需
    volumes:
      - /opt/rocketmq/nameserver/logs:/home/rocketmq/logs
    command: sh mqnamesrv
    restart: always
EOF
---
cat>/opt/rocketmq/rmqbroker.yaml<<EOF
version: '3'
services:
  broker:
    image: apache/rocketmq:5.3.1
    container_name: rmqbroker
    network_mode: host
    environment:
      - JAVA_OPT_EXT=-Xmx2048m -Xms2048m -Xmn1024m # 本次为demo实际按需
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf:/home/rocketmq/conf
    command: sh mqbroker -c /home/rocketmq/conf/broker-n2.conf
    restart: always
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# 3.部署

# 3.1 三个节点依序启动nameserver

docker-compose -f /opt/rocketmq/rmqnamesr.yaml up -d

# 停止
docker-compose -f /opt/rocketmq/rmqnamesr.yaml down
1
2
3
4

# 3.2 三个节点依序启动broker

docker-compose -f /opt/rocketmq/rmqbroker.yaml up -d

# 停止
docker-compose -f /opt/rocketmq/rmqbroker.yaml down
1
2
3
4

# 3.3 查看日志

docker logs -f rmqbroker
docker logs -f rmqnamesr
1
2

# 3.4查看端口

# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1037/sshd           
tcp6       0      0 :::30909                :::*                    LISTEN      223054/java         
tcp6       0      0 :::30911                :::*                    LISTEN      223054/java         
tcp6       0      0 :::40911                :::*                    LISTEN      223054/java         
tcp6       0      0 :::9876                 :::*                    LISTEN      221987/java         
tcp6       0      0 :::22                   :::*                    LISTEN      1037/sshd        

# 9876: 管理 Broker 注册、提供 Topic 路由信息,是 Producer/Consumer 连接的入口
# 30911: 监听 Producer 发送消息、Consumer 拉取消息的请求(配置 listenPort 指定)
# 40911: DLedger 集群节点间的通信端口,默认规则为 listenPort + 10000
# 30909: Broker 内部线程通信、数据处理,默认规则为 listenPort - 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 4.验证

# 4.1 查看集群状态

[root@node3 rocketmq]# docker exec -it rmqbroker  ./mqadmin  clusterList -n 127.0.0.1:9876
1

# 5. Dashboard

# 创建目录
[root@node1 rockertmq]# mkdir -p /root/rockertmq

# 进入目录
[root@node1 rockertmq]# cd /root/rockertmq

# 编译rocketmq-dashboard的docker-compose文件

[root@node1 rockertmq]# cat >docker-compose.yaml<<EOF
version: '3'
services:
  rocketmq-dashboard:
    container_name: rocketmq-dashboard
    image: apacherocketmq/rocketmq-dashboard:latest
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.5.81:9876;172.16.5.82:9876;172.16.5.83:9876
      - TZ=Asia/Shanghai  
    ports:
      - "8080:8080"  
    restart: always  
EOF

# 启动rocketmq-dashboard
[root@node1 rockertmq]# docker-compose up -d 

# 停止服务
[root@node1 rockertmq]# docker-compose down
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#RocketMQ
上次更新: 2026/05/31, 03:30:34
RocketMQ二进制部署
Nginx版本升级

← RocketMQ二进制部署 Nginx版本升级→

最近更新
01
Coredns自定义参数
05-18
02
Docker Mirrors
04-24
03
SSL自签证书管理
02-10
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式