系统相关
首页 > 系统相关> > RabbitMQ的内存节点和磁盘节点说明

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

  

 

标签:RabbitMQ,disc,集群,内存,磁盘,节点
来源: https://www.cnblogs.com/cjzzz/p/16319699.html