RabbitMQ的内存节点和磁盘节点说明

在RabbitMQ集群中有内存节点和磁盘节点之分

内存节点(ram):就是将元数据都放在内存里,内存节点的话,只要服务重启,该节点的所有数据将会丢失

硬盘节点(disc):就是将元数据都放在硬盘里,所以服务重启的话,数据也还是会存在的

在RabbitMQ集群里,至少有一个磁盘节点,它用来持久保存我们的元数据,如果RabbitMQ是单节点运行,则默认就是磁盘节点。但是为了提高性能,其实不需要所有节点都是disc的节点,根据需求分配即可

如果RabbitMQ集群只有一个磁盘节点,然后磁盘节点挂了,会发生什么?

可以正常的投递消息和消费消息,但是不能做以下事:

create queues 创建队列
create exchanges 创建交换器
create bindings 创建绑定关系
add users 创建用户
change permissions 修改用户权限
add or remove cluster nodes 新增或移除RabbitMQ集群节点

所以,考虑到高可用性,推荐在集群里保持2个磁盘节点,这样一个挂了,另一个还可正常工作。但上述最后一点,往集群里增加或删除节点,要求2个磁盘节点同时在线

#加入集群时设置节点为内存节点
rabbitmqctl join_cluster --ram rabbit@rabbit-node1
#通过命令修改节点的类型
rabbitmqctl changeclusternode_type disc | ram

  

 

posted @ 2022-05-28 01:29  RFAA  阅读(1438)  评论(0编辑  收藏  举报