首先准备三台服务器:我这里三个IP分别是99/106/119
对应的hostname在之前安装KubeSphere的时候已经改好了
为master1、master2、master3

有些说免密登录的,没必要吧
只要三台机器互相可以ping通,关闭防火墙、SELinux,就行


RabbitMQ 基于Erlang实现的,所以在安装rabbitmq之前需要先安装erlang,
安装的时候需要注意erlang的版本号与rabbitmq的版本号。 
安装注意:erlang版本号需要兼顾rabbitmq版本。
版本不对,是无法启动rabbitmq的。 
官网版本对应表:http://www.rabbitmq.com/which-erlang.html


【1】首先在三台机器上分别安装RabbitMQ

可以先查看一下当前配置的源支持的软件版本

yum list erlang
erlang-R16B-03.18.el7.x86_64
yum list rabbitmq-server
rabbitmq-server-3.3.5-34.el7.noarch
# 上面的版本比较老了,不过能用,而且这两个版本是满足依赖的

也可以参考这一篇安装较新的版本


确认好依赖的版本关系后安装

yum install erlang
yum install rabbitmq-server
# 这里不指定版本就会安装上面list出来的版本
# 可以yum upgrade一下,不过我这里试了也没用,在线安装的话还是最高支持上面的那个版本# 加入是这两个版本的话,应该就没有问题,其他版本可能还会需要安装一个依赖,socat# 然后就是设置三连
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
systemctl status rabbitmq-server# 查看插件
Rabbitmq-plugins list

到现在,还没有启动web服务呢,可以看到所有插件都是空[  ]

启动web插件

rabbitmq-plugins enable rabbitmq_management

可以看到上面列表有几个变成[ e ] 了,我前些天第一次安装的时候还以为是错误的意思呢

应该是enable的意思,使能的意思,开启的意思

这时候登录web端口还是进不去,要重启一下服务

systemctl restart rabbitmq-server.service

这时候三个节点应该都可以登进web界面了

下面就是选择一个主节点,然后把另两个节点加入,组成集群

在这之前,还要先同步一下三个节点的cookie


【2】同步cookie

首先说一下cookie,RabbitMQ是基于Erlang的,
Erlang Cookie是保证不同节点可以相互通信的密钥,
要保证集群中的不同节点相互通信必须共享相同的Erlang Cookie

# cookie目录,是个隐藏文件
/var/lib/rabbitmq/.erlang.cookie# 我们要把master1中的cookie同步到master2、3
# scp可以,不过直接复制粘贴更简单,因为cookie文件内容就是几十个字符串# 先把2、3服务停掉,不用管1
systemctl restart rabbitmq-server.service# 把2、3的.erlang.cookie文件暂时修改为777
# 然后用1的cookie替换,替换后及时把权限修改回来,原权限是400
# 如果不还原权限,启动mq时会报错,直接启动不起来。

【3】加入集群

因为rabbitmq-server启动时,会一起启动节点和应用,它预先设置RabbitMQ应用为standalone模式。
要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。
如果使用systemctl stop rabbitmq-server,应用和节点都将被关闭。所以使用rabbitmqctl stop_app仅仅关闭应用。

【2】中把2、3的服务停掉了,现在开启

# 开启服务
systemctl start rabbitmq-server# 停掉应用,不是停服务
rabbitmqctl stop_app# 加入集群
rabbitmqctl join_cluster rabbit@master1############################################
# 默认rabbitmq启动后是磁盘节点,
# 如果要使2、3都是内存节点,加上--ram参数即可。
# rabbitmqctl join_cluster --ram rabbit@master1
# 如果想要更改节点类型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram)
# 前提是必须停掉rabbit应用

这时节点2、3就加进来了

然后再把2、3的应用打开

rabbitmqctl start_app


这样,普通的集群模式就搭建好了,下一篇再在此基础上,配置为镜像集群模式

服务器安装三节点RabbitMQ集群相关推荐

  1. 服务器安装三节点RabbitMQ集群(3)

    <===服务器安装三节点RabbitMQ集群(2) 镜像集群搭好了,我又要开始破坏了 先reboot一下节点1,然后再start就不行了 再看一下cebazi队列,跑到3节点了,说明3节点被选为 ...

  2. 服务器安装三节点RabbitMQ集群(4)

    <===服务器安装三节点Rabbit MQ集群(3) 上一篇,在搭建好集群之后,直接reboot了节点1,然后就起不来了,应该是操作方法不对 这一篇再整理一下 1.加入集群 首先,三个节点都各自 ...

  3. 服务器安装三节点RabbitMQ集群(2)

    普通模式:默认的集群模式,以两个节点(1.2)为例来进行说明.对于Queue来说,消息实体只存在于其中一个节点1(或者2),1和2两个节点仅有相同的元数据,即队列的结构.当消息进入1节点的Queue后 ...

  4. (三)RabbitMQ集群(Ⅰ)

    RabbitMQ集群(Ⅰ) 安装RabbitMQ:https://blog.csdn.net/ycj_xiyang/article/details/79926586 RabbitMQ集群(Ⅱ):htt ...

  5. 使用ceph-deploy搭建三节点ceph集群

    本文参照臧学雪园老师的Ceph基础篇视频教程加以归纳整理,再次感谢臧雪园老师. 基础环境的准备 实验拓扑图: 首先准备基础环境,因为我的笔记本电脑内存只有4G,所以三台虚拟机全部使用最小安装. cep ...

  6. Ceph分布式存储系列(二):ceph-deploy方式部署三节点ceph集群

    承接上文:Ceph分布式存储系列(一):Ceph工作原理及架构浅析梳理 之前都是使用Deepsea方式部署的ceph,长时间不用ceph-deploy了,这次来回顾,顺便总结下! 前言: ceph-d ...

  7. 基于Kubernetes(k8s)的RabbitMQ 集群

    目前,有很多种基于Kubernetes搭建RabbitMQ集群的解决方案.今天笔者今天将要讨论我们在Fuel CCP项目当中所采用的方式.这种方式加以转变也适用于搭建RabbitMQ集群的一般方法.所 ...

  8. RabbitMQ集群环境搭建

    RabbitMQ集群环境搭建 一.安装基础工具包 二:安装Erlang和RabbitMQ 1. 安装Erlang 2. 安装RabbitMQ 3. 启动RabbitMQ 4. 启动RabbitMQ管理 ...

  9. RabbitMQ 集群篇

    RabbitMQ 集群篇 00.集群架构原理 前面我们有介绍到 RabbitMQ 内部有各种基础构件,包括队列.交换器.绑定.虚拟主机等,他们组成了 AMQP 协议消息通信的基础,而这些构件以元数据的 ...

最新文章

  1. python如何导入txt文件-数据从txt文本导入python
  2. oracle 中文查询不到,使用PLSQL查询Oracle语句中文无法匹配问题解决
  3. TroubleshootingGuide for JavaTM SE 6withHotSpot TM VM (翻译附录未完待续)-2
  4. Leet Code OJ 20. Valid Parentheses [Difficulty: Easy]
  5. CNN中的权重维度解析以及卷积核中的数值是怎么确定的
  6. php工程模式,factory - PHP工程模式如何传入参数
  7. 商品管理后台发布商品时,规格值组合的前端交互的实现逻辑
  8. Jquery获取服务器端控件ID的方法
  9. git merge用法_常用命令之git操作(进阶篇)
  10. 五邑大学c语言期末考试题,五邑大学 c语言试卷.doc
  11. 规范化编程:ANSI和UNICODE的使用
  12. 甲骨文就 Java 安全问题与 FTC 达成和解
  13. java+long.builder_java.lang.StringBuilder.append(long lng)方法实例
  14. Ogre 3d 工具集
  15. 大数据开发笔记(九):Flink综合学习
  16. 哪些话你一开始不信,后来却深信不疑
  17. 随笔小杂记(四)——将语义分割标签转换为指定像素值
  18. 软件工程导论 四则运算
  19. PDF转jpg for MAC
  20. 番茄时间管理法(Pomodoro Technique)

热门文章

  1. 建立和使用Maven项目骨架Archetype
  2. Node.js初探之hello world
  3. JEECG Framework 3.4.1 beta 版本发布
  4. Java描述设计模式(19):模板方法模式
  5. JQ中使用FormData+Ajax发送请求及使用express接收处理FormData数据
  6. TypeError: CleanWebpackPlugin is not a constructor
  7. 51信用卡 Android自动埋点实践
  8. Python | 四种运行其他程序的黑科技
  9. NTP (Network Time Protocol)
  10. Python将时长转换为MM:SS格式