修改hostname导致RabbitMQ数据丢失

背景介绍

公司的很多关键服务都使用了RabbitMQ来作为消息队列服务, 可以说是非常地关键的一个环节, 最近由于业务量的上升, 导致RabbitMQ的CPU持续走高, 所以抽空研究了一下RabbitMQ的扩容, 利用我们自己运维平台使用的一个单节点的RabbitMQ来作为测试吧.看到这个单节点的RabbitMQ的服务器主机名不是很规范, 所以就顺手改了主机名, 然后重启了RabbitMQ服务, 重启后看了RabbitMQ的日志, 发现有大量的因为密码错误而连接失败的, 如下:

复制代码
AMQPLAIN login refused: user 'test' - invalid credentials

发现RabbitMQ的管理后台也登陆不进去了, 这时候我意识到RabbitMQ的数据丢失了, 至少是用户的数据丢失了, 因为管理后台登陆不上了, 我登录到服务器上列出了所有的用户:

复制代码
root@test-01:/# rabbitmqctl list_users

Listing users ...

guest [administrator]

发现只有guest用户了, 这时候我按照之前的用户重新创建了用户后恢复了, 后来查了一下官方文档:

bash 复制代码
In addition to that, by default RabbitMQ names the database directory using the current hostname of the system. If the hostname changes, a new empty database is created. To avoid data loss it's crucial to set up a fixed and resolvable hostname
结论

修改主机名最后在集群安装之前规划好, 集群搭建完以后主机名一定不能修改, 谨记。

相关推荐
回家路上绕了弯9 小时前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
用户83071968408212 小时前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
用户8307196840822 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者4 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者5 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧7 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖7 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农7 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者7 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀7 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式