Linux下RabbitMQ的单机安装和集群安装
1、单机安装
该教程本人亲测实际有效,基于RPM
和yum
的混合安装。
步骤:
-
上传对应的安装包(socat那个可有可用)
-
安装对应依赖
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
-
安装erlang安装包。因为
rabbitmq的底层开发就是基于erlang语言的
,所以需要先安装erlang
。 -
安装socat(如果rpm无法安装可以使用
yum install socat
进行安装;至于rpm无法安装的原因,百度了一下说是依赖了另外一个程序。所以感觉rpm安装比较麻烦,这里就演示了yum命令安装) -
安装rabbitmq
-
开启管理页面
rabbitmq-plugins enable rabbitmq_management
-
开放对应端口(5672,15672(页面管理)),开启完后记得重启。
-
开启对应角色(账号密码都是
guest
)vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
-
启动rabbitmq
service rabbitmq-server start
-
浏览器访问
ip:15672
并登陆 -
可以看到
config file
显示未找到,因为rabbitmq配置文件在/usr/share/doc/rabbitmq-server-3.6.5/
此处,我们需要进入然后进行配置文件复制到指定目录,并重启即可。 -
安装成功
2、集群安装
步骤:
- 首先确保你的
5672
、4369
、15672
、25672
的防火墙端口处于开启状态,避免不必要的错误发生。
- 保证集群中每个节点的
.erlang.cookie
值都相同,可以在主节点使用scp /var/lib/rabbitmq/.erlang.cookie 从机ip:/var/lib/rabbitmq/.erlang.cookie
远程复制命令进行拷贝。需要输入从机密码
- 修改主机和从机的
hostname
,使用vi /etc/hostname
修改。并且修改域名,使用vi /etc/hosts
命令修改。 主机名和和ip对应域名最好保持一致。
- 主机重置
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
- 使用
rabbitmqctl cluster_status
查看主机
节点状态。得出主机节点是[email protected]
- 从机操作
重置rabbitmqctl stop_app
rabbitmqctl reset
加入节点,这里需要注意,最后一个参数是刚才上一个操作的图片中红线包围的那个节点,不然会连接不上主节点rabbitmqctl join_cluster [email protected]
下图为成功状态:
- 查看节点状态
rabbitmqctl cluster_status
,已经形成集群。
从机节点:
主机节点:
-
开启从机节点
rabbitmqctl start_app
-
查看控制台
镜像集群配置
上面已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制。虽然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,必须要创建镜像队列。
无法同步
如下图,我们。当有节点挂了,看到消息显示NAN
:
配置镜像(添加规则)
- Name:策略名称
- Pattern:匹配的规则,如果是匹配所有的队列,是^.
- Definition:使用ha-mode模式中的all,也就是同步所有匹配的队列。问号链接帮助文档。
此时,我们可以看到,队列中显示了+1(表示一个集群)
小结
至此,单机和集群安装已经结束了。在安装过程中,要注意防火墙的开启
,避免做无用功。以及确定挂载的节点
,保证从节点能顺利挂载到主机节点上。