赞
踩
01、安装前准备
1:下载地址:https://www.rabbitmq.com/download.html
2:环境准备:CentOS7.x+ / Erlang
RabbitMQ是采用Erlang语言开发的,所以系统环境必须提供Erlang环境,第一步就是安装Erlang。
erlang和RabbitMQ版本的按照比较: https://www.rabbitmq.com/which-erlang.html
在里面查看你需要的RabbitMQ版本以及Erlang俩个版本一定要配套
我下载的是 esl-erlang_23.3.1-1_centos_7_amd64.rpm和rabbitmq-server-3.8.13-1.el8.noarch.rpm
网盘地址:链接:https://www.aliyundrive.com/s/zVbVwKEpp95
01、安装步骤
使用xftp工具将上面下载的两个文件复制到usr/local下
使用xshell 进入到 cd /usr/local/下
先升级 yum 输入 yum update
然后解压输入:rpm -Uvh esl-erlang_23.3.1-1_centos_7_amd64.rpm
结束后执行:yum install -y esl-erlang_23.3.1-1_centos_7_amd64.rpm
进行安装
接着安装socat yum install socat
解压rabbitmq rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm
systemctl start rabbitmq-server
启动服务
systemctl status rabbitmq-server
查看状态
systemctl enable rabbitmq-server
开机自启
接下来安装可是话界面:
需要在sbin目录下执行
umask 0022
rabbitmq-plugins enable rabbitmq_management
不是自己买的服务器的话安装需要检查 /etc下的host文件中有没有新增192.168.2.132 F
前面为主机ip 后面为主机名
新增用户(之所以新增是因为guest用户是只允许本地访问) rabbitmqctl add_user admin admin
设置用户分配操作权限
rabbitmqctl set_user_tags admin administrator
用户级别:
1、administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理
2、monitoring 监控者 登录控制台,查看所有信息
3、policymaker 策略制定者 登录控制台,指定策略
4、managment 普通管理员 登录控制台
接下来关闭防火墙,我是在虚拟机安装的
关闭防火墙:systemctl stop firewalld
停止并禁用开机启动 sytemctl disable firewalld
同时关闭selinux:setsebool -P nix_enabled 1
或者是
开启需要的端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --zone=public --add-port=8883/tcp --permanent
firewall-cmd --zone=public --add-port=61613/tcp --permanent
firewall-cmd --zone=public --add-port=61614/tcp --permanent
firewall-cmd --zone=public --add-port=15674/tcp --permanent
firewall-cmd --zone=public --add-port=15675/tcp --permanent
这样外部就可以访问了
接下来是配置集群
先对rabbitmq集群了解一下:
https://www.jianshu.com/p/b7cc32b94d2a
准备两台Centos7的机器,hostname分别为:F , G .(我是配置一台后然后用VMware Workstation Pro 克隆几台,克隆之后主机名一定要改,否则集群会无法搭建)
2、IP地址分别为:F—192.168.2.132 , G—192.168.2.133。
3、修改hosts文件如下,下面是G这台机器的hosts文件内容,F也需要如下配置:
[root@G bin]# cat /etc/hosts
127.0.0.1 G localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 G localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.132 G
192.168.2.133 F
要是多台的话每台的host里的内容都要一致
保证两台机器都能够相互ping通
在上述的两台机器上安装rabbitmq完成之后,你可以看到你的机器中有如下1个文件。路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie,他是一个隐藏文件。那么这文件存储的内容是什么,是做什么用的呢?
这样说吧:RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是同步cookie,将两台机器中的.erlang.cookie文件内容保持一致.
保持一致后,先对F操作
普通模式的搭建
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app
然后对G操作
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@F --ram 将G添加到集群中去
sudo rabbitmqctl start_app
这样就搭建完毕
上述配置的RabbitMQ默认集群模式,但并不包管队列的高可用性,尽管互换机、绑定这些可以复制到集群里的任何一个节点,然则队列内容不会复制。固然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能守候重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,须要创建镜像队列。
镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。
我是通过上面开启的网页的管理端来设置的镜像队列,也可以通过命令,这里先说其中的网页设置方式:
1、点击admin菜单–>右侧的Policies选项–>左侧最下下边的Add/update a policy。
2、按照图中的内容根据自己的需求填写。
3、点击Add policy添加策略。
此时你就会来你的两台rabbitmq服务器的网页管理端amind菜单下看见刚才创建的队列了,下面我们来添加一个queues队列来看看效果,这里只是测试结果,其它的先不填写。
设置镜像队列策略
在任意一个节点上执行:
root@F:~ # rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
我们去G上查看策略。
root@G:~ # rabbitmqctl list_policies
Listing policies …
/ ha-all all ^ {“ha-mode”:“all”} 0
…done.
此时镜像集群就已经完成了,可以在任意节点上创建队列,看看其他两个节点是否会同步。
第一次写文章也不会排版…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。