码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ-rabbitmqctl集群搭建(五)

时间:2019-06-11 19:14:38      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:vhost   集群搭建   baidu   home   stat   环境   强制   指定   写入   

单机多节点

准备

  1.准备3台物理机 我这里通过本地机和2台虚拟模拟我是mac通过(Parallel Desktop 实现)

      技术图片

    2.按照签名的liux安装步骤在3台机器都安装rabiitMq

    3.将任意一节点的cookie复制到其他2台保证一致 cookie路径为$HOME/.erlang.cookie 可以通过echo $HOME 查看环境变量值

     技术图片

  注:如果提示只读  1.ctrl+c退出 执行sudo!!  2.执行 vim 修改文件 3.保存加上!强制执行 :wq!

 4.修改每台机器的host映射保证根据映射能相互ping通

 技术图片

技术图片

5.守护进程启动三台mq  

./rabbitmq-server -detached

6.检查启动状态

./rabbitmqctl cluster_status

7.如果启动成功如下图 我这里是已经加入集群了 所以看到三个节点 未加入集群就只能看到当前节点

技术图片

8.分别在node2和node3自行加入集群节点(因为是同级的所以顺序没关系 可以是在node1 node3 执行加入node2)

rabbitmqctl stop_app 

rabbitmqctl join_cluster rabbit@node1

rabbitmqctl start_app

 

9.然后通过任意节点执行./rabbitmqctl cluster_status就可以看到7那个图

10.需要注意 如果通过stop_app节点全部关闭 第一个启动节点需要是最后关闭的那个节点 其他节点启动都会等待它启动成功 超时会报错 

如:我一次关闭节点1 节点2 节点3

然后我启动节点2

技术图片

会处于等待状态 会一致等待node2

如果node2 由于某种情况无法启动 可以通过

./rabbitmqctl forget_cluster_node剔除当前集群

如果所有节点都是非正常关闭

则启动之前需要在一个节点执行

./rabbitmqctl force_boot

./rabbitmq_server -detached

集群节点类型

1.通过./rabbitmqctl cluster_status

技术图片

disc表示磁盘类型  保证队列、交换器、绑定关系、用户、权限、和vhost都会保存到磁盘 重启不会丢失

2.加入集群时可以通过指定为内存类型(部分节点使用内存类型保证最佳性能)

rabbitmqctl stop_app 

rabbitmqctl join_cluster rabbit@node1 --ram

rabbitmqctl start_app

 

3.如果集群已经搭建好了可以通过以下命令进行切换

 ./rabbitmqctl stop_app

./rabbitmqctl change_cluster_node_type ram

./rabbitmqctl start_app

技术图片

注意点

rabbitMQ中 在集群中创建队列、交换器、或者绑定关系 需要所有集群中的节点都提交成功才会返回 这意味着都是磁盘节点写入磁盘操作是昂贵的

在内存节点提供高昂的性能磁盘节点提供可靠性 如何做抉择

rabbitMQ保证集群中至少一个集群节点 如果节点变更都会至少通知一个磁盘节点,如果磁盘节点挂了那么将不能添加元数据信息,所以我们再集群汇总至少保证2~3个磁盘节点其他都是内存节点

RabbitMQ-rabbitmqctl集群搭建(五)

标签:vhost   集群搭建   baidu   home   stat   环境   强制   指定   写入   

原文地址:https://www.cnblogs.com/LQBlog/p/11005385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!