云计算百科
云计算领域专业知识百科平台

A服务器备份rabbitmq持久化目录到B服务器,不显示mq队列消息

场景:在A服务器上docker启动mq服务,在mq服务器上恢复服务,结果队列消息丢失问题

1.备份持久化文件

docker inspect 容器id

"Mounts": [
{
"Type": "bind",
"Source": "/data/containers/rabbitmq/data",
"Destination": "/var/lib/rabbitmq",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}

# 使用tar压缩文件
tar -zcvf rabbitmq.tar.gz /data/containers/rabbitmq/data

将压缩文件发送到备用服务器103

2.新服务器启动mq服务

1.解压文件

解压文件到当前文件夹

tar -xzvf rabbitmq.tar.gz

查看文件

(base) [root@centos-3 rabbitmq]# ls
config data docker-compose.yml

docker-compose文件内容如下

services:
rabbitmq:
container_name: rabbitmq
image: registry.cn-hangzhou.aliyuncs.com/spider_tie/rabbitmq:3.7
restart: always
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
TZ=Asia/Shanghai
RABBITMQ_DEFAULT_USER=rbadmin
RABBITMQ_DEFAULT_PASS=OpsXlab2024!i
volumes:
– ./data:/var/lib/rabbitmq
networks:
– app-tier
#ipv4_address: 172.22.1.10
ports:
5672:5672
15672:15672
networks:
app-tier:
name: app-tier
driver: bridge
#external: true
# ipam:
# config:
# – subnet: 172.22.1.0/24

docker-compose up -d

web端查看服务如下,mq中没有队列消息 在这里插入图片描述

可以看到队列无消息,但是原来的mq服务是有消息的 在这里插入图片描述

2.解决消息未显示问题

需要备份hostname和cookie,要不然持久化消息无法被识别

docker exec -it f43fb7de1ba1 cat /var/lib/rabbitmq/.erlang.cookie
docker exec -it f43fb7de1ba1 hostname

例如在101上操作

[root@centos-1 mnesia]# docker exec -it f43fb7de1ba1 cat /var/lib/rabbitmq/.erlang.cookie
IHMICEQVPBXTPPFDNFTT
[root@centos-1 mnesia]# docker exec -it f43fb7de1ba1 hostname
f43fb7de1ba1

然后再备用服务器103操作

(base) [root@centos-3 rabbitmq]# docker exec -it a0dbe129970f cat /var/lib/rabbitmq/.erlang.cookie
IHMICEQVPBXTPPFDNFTT
(base) [root@centos-3 rabbitmq]# docker exec -it a0dbe129970f hostname
a0dbe129970f

docker-compose.yml文件如下

services:
rabbitmq:
container_name: rabbitmq
image: registry.cn-hangzhou.aliyuncs.com/spider_tie/rabbitmq:3.7
restart: always
hostname: f43fb7de1ba1
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
TZ=Asia/Shanghai
RABBITMQ_DEFAULT_USER=rbadmin
RABBITMQ_DEFAULT_PASS=OpsXlab2024!i
RABBITMQ_ERLANG_COOKIE=IHMICEQVPBXTPPFDNFTT
volumes:
– ./data:/var/lib/rabbitmq
networks:
– app-tier
#ipv4_address: 172.22.1.10
ports:
5672:5672
15672:15672
networks:
app-tier:
name: app-tier
driver: bridge
#external: true
# ipam:
# config:
# – subnet: 172.22.1.0/24

注:主要是新增hostname,RABBITMQ_ERLANG_COOKIE

修改之后重新启动查看效果

备份前 请添加图片描述 备份后 请添加图片描述 至此,问题解决

赞(0)
未经允许不得转载:网硕互联帮助中心 » A服务器备份rabbitmq持久化目录到B服务器,不显示mq队列消息
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!