RabbitMQ集群&使用说明

编程

集群

  1. 集群所有机器都安装好erlang和RabbitMQ(安装方式见上一篇)
  2. Rabbitmq的集群是依附于erlang的集群来工作的,必须保证各节点erlang的cookie是一样的(最好从主节点copy到各个节点上):/var/lib/rabbitmq/.erlang.cookie
  3. 启动各个节点的RabbitMQ

# 启动服务

service rabbitmq-server start

rabbitmqctl start_app

# 把节点添加到集群中(默认磁盘持久化,--ram表示内存)

rabbitmqctl join_cluster --ram rabbit@[hostname]

# 如果要更改节点持久化类型,需要先停再改

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type disc(ram)

这时候在web页面的overview就能看到你集群中所有的节点情况了。

镜像配置

集群并不能保证高可用,假设节点2宕机了,那么节点2上面的queue,exchange和message都会丢失,即使是用磁盘持久化,在宕机这段时间内,该queue,exchange都无法提供服务。

于是,诞生了镜像:把A节点的内容镜像到B节点(相当于备份),当A节点挂掉的时候,B节点顶上。

web页面配置:admin菜单–>右侧的Policies选项–>Add/update a policy

使用说明

以下使用说明对于单一模式、集群模式、镜像模式都适用

  • 个人理解:Exchange是路由(负责分发),Queue是队列(先进先出,并存储Message)。一个消息,可以被路由分发到多个队列中(实际场景:产生一个订单,需要通知到多个模块知晓)
  • 当没有Queue绑定到Exchange时,往Exchange中写入的消息也不会重新分发到之后绑定的queue上
  • 磁盘持久化配置,需要将Queue,Exchange和Message都持久化

以上是 RabbitMQ集群&使用说明 的全部内容, 来源链接: utcz.com/z/512174.html

回到顶部