RabbitMQ集群搭建
实现步骤
设计架构模式:在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式。两台内存模式的节点速度更快,因此通过客户端连接访问它们。但是在客户端不可能分别连接两台内存节点,肯定是通过前端反向代理去轮询分发请求。如果担心前端反向代理服务器故障,可以通过keepalived软件做一个高可用架构。而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用
环境准备:
三台机子
192.168.10.10 hdp-10
192.168.10.11 hdp-11
192.168.10.13 hdp-13
关闭防火墙
命令:[root@hdp-10 ~]# iptables -F
命令:[root@hdp-10 ~]# systemctl stop firewalld
修改/etc/hosts(三台都要修改)
命令:[root@hdp-10 ~]# vim /etc/hosts
192.168.10.10 hdp-10
192.168.10.11 hdp-11
192.168.10.13 hdp-13
安装rabbitmq软件
[root@hdp-10 ~]# yum install epel-release -y
[root@hdp-10 ~]# yum install rabbitmq-server -y
查看节点服务
[root@hdp-10 ~]# rabbitmq-plugins list
启动rabbitmq管理服务
命令:[root@hdp-10 ~]# rabbitmq-plugins enable rabbitmq_management
命令: [root@hdp-10 ~]# systemctl start rabbitmq-server.service
命令:[root@hdp-10 ~]# ss -antulp | grep 5672
在服务启动之后,若是有三个端口开放,则表示服务服务开启成功。其中15672和25672都是rabbitmq的管理端口,5672则是和生产者、消费者通信的端口
查看连接状态
先查看单个连接是否能够,三台服务器都要做测试,如果连接失败,就要检查前面的hostname和hosts文件设置有没有错误
修改.erlang.cookie
Rabbitmq的集群是依赖于Erlang的集群来工作的,所以必须先构建起Erlang的集群环境。在Erlang的集群中,各节点通过一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie(该文件为隐藏文件)中,文件是400的权限。必须使各节点cookie保持一致,否则节点之间就无法通信。注意在作修改时,应先关闭rabbitmq服务
命令:[root@hdp-10 ~]# vim /var/lib/rabbitmq/.erlang.cookie
修改之后
将存储结点和管理节点结合起来
先停止应用,hdp-10为管理节点 hdp-11和hdp-13为存储节点(操作一致),将三者做成集群,最后启动rabbitmq应用
命令:rabbitmqctl stop_app #关闭应用
命令:[root@hdp-13 ~]# rabbitmqctl join_cluster --ram rabbit@hdp-10 #将内存节点连接到磁盘节点 --ram表示作为内存节点
然后将两个存储节点的应用启动
命令:[root@hdp-13 ~]# rabbitmqctl start_app
查看端口,确保服务正常
命令:[root@hdp-10 ~]# ss -antulp | grep 5672
然后访问web网页
打开浏览器访问 http://192.168.10.10:15672 默认账号密码为:guest
总结:。。。。。。。。。。。。。。(此处省略一万字)