服务器安装三节点RabbitMQ集群
首先准备三台服务器:我这里三个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集群相关推荐
- 服务器安装三节点RabbitMQ集群(3)
<===服务器安装三节点RabbitMQ集群(2) 镜像集群搭好了,我又要开始破坏了 先reboot一下节点1,然后再start就不行了 再看一下cebazi队列,跑到3节点了,说明3节点被选为 ...
- 服务器安装三节点RabbitMQ集群(4)
<===服务器安装三节点Rabbit MQ集群(3) 上一篇,在搭建好集群之后,直接reboot了节点1,然后就起不来了,应该是操作方法不对 这一篇再整理一下 1.加入集群 首先,三个节点都各自 ...
- 服务器安装三节点RabbitMQ集群(2)
普通模式:默认的集群模式,以两个节点(1.2)为例来进行说明.对于Queue来说,消息实体只存在于其中一个节点1(或者2),1和2两个节点仅有相同的元数据,即队列的结构.当消息进入1节点的Queue后 ...
- (三)RabbitMQ集群(Ⅰ)
RabbitMQ集群(Ⅰ) 安装RabbitMQ:https://blog.csdn.net/ycj_xiyang/article/details/79926586 RabbitMQ集群(Ⅱ):htt ...
- 使用ceph-deploy搭建三节点ceph集群
本文参照臧学雪园老师的Ceph基础篇视频教程加以归纳整理,再次感谢臧雪园老师. 基础环境的准备 实验拓扑图: 首先准备基础环境,因为我的笔记本电脑内存只有4G,所以三台虚拟机全部使用最小安装. cep ...
- Ceph分布式存储系列(二):ceph-deploy方式部署三节点ceph集群
承接上文:Ceph分布式存储系列(一):Ceph工作原理及架构浅析梳理 之前都是使用Deepsea方式部署的ceph,长时间不用ceph-deploy了,这次来回顾,顺便总结下! 前言: ceph-d ...
- 基于Kubernetes(k8s)的RabbitMQ 集群
目前,有很多种基于Kubernetes搭建RabbitMQ集群的解决方案.今天笔者今天将要讨论我们在Fuel CCP项目当中所采用的方式.这种方式加以转变也适用于搭建RabbitMQ集群的一般方法.所 ...
- RabbitMQ集群环境搭建
RabbitMQ集群环境搭建 一.安装基础工具包 二:安装Erlang和RabbitMQ 1. 安装Erlang 2. 安装RabbitMQ 3. 启动RabbitMQ 4. 启动RabbitMQ管理 ...
- RabbitMQ 集群篇
RabbitMQ 集群篇 00.集群架构原理 前面我们有介绍到 RabbitMQ 内部有各种基础构件,包括队列.交换器.绑定.虚拟主机等,他们组成了 AMQP 协议消息通信的基础,而这些构件以元数据的 ...
最新文章
- python如何导入txt文件-数据从txt文本导入python
- oracle 中文查询不到,使用PLSQL查询Oracle语句中文无法匹配问题解决
- TroubleshootingGuide for JavaTM SE 6withHotSpot TM VM (翻译附录未完待续)-2
- Leet Code OJ 20. Valid Parentheses [Difficulty: Easy]
- CNN中的权重维度解析以及卷积核中的数值是怎么确定的
- php工程模式,factory - PHP工程模式如何传入参数
- 商品管理后台发布商品时,规格值组合的前端交互的实现逻辑
- Jquery获取服务器端控件ID的方法
- git merge用法_常用命令之git操作(进阶篇)
- 五邑大学c语言期末考试题,五邑大学 c语言试卷.doc
- 规范化编程:ANSI和UNICODE的使用
- 甲骨文就 Java 安全问题与 FTC 达成和解
- java+long.builder_java.lang.StringBuilder.append(long lng)方法实例
- Ogre 3d 工具集
- 大数据开发笔记(九):Flink综合学习
- 哪些话你一开始不信,后来却深信不疑
- 随笔小杂记(四)——将语义分割标签转换为指定像素值
- 软件工程导论 四则运算
- PDF转jpg for MAC
- 番茄时间管理法(Pomodoro Technique)
热门文章
- 建立和使用Maven项目骨架Archetype
- Node.js初探之hello world
- JEECG Framework 3.4.1 beta 版本发布
- Java描述设计模式(19):模板方法模式
- JQ中使用FormData+Ajax发送请求及使用express接收处理FormData数据
- TypeError: CleanWebpackPlugin is not a constructor
- 51信用卡 Android自动埋点实践
- Python | 四种运行其他程序的黑科技
- NTP (Network Time Protocol)
- Python将时长转换为MM:SS格式