天天看点

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

rabbitmq是一个由erlang开发的amqp(advanced message queue )的开源实现。

它是一个异步消息处理中心,史上最好的。对软件模块间的异步处理和解耦非常有帮助。

当然本笔记的主题不是如何使用,而是高可用。

测试环境:

host1 192.168.30.1 (rabbitmq-server/master)

host2 192.168.30.2 (rabbitmq-server/slave)

host3 192.168.30.3 (rabbitmq-server/slave)

感谢系统部的周大帅整了一个本地yum仓库,使得安装非常简单快速,两条命令足矣。

没有本地仓库怎么办?那就老老实实源码安装吧!-_-

或者还有周大帅第二个福利,整理好的rpm包附件下载吧。

继续,启动rabbitmq-server

查看rabbitmq-server的状态

开启成功,默认端口5672

rabbitmqctl是rabbitmq自带的一个cli式的管理命令。尽管挺好用的,但是不够直观啊。

rabbitmq还自带了一个web管理工具rabbitmq_management,默认没有开启,需要手动开启。

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理
高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

修改3台主机的/etc/hosts

关闭3个rabbitmq

detached

复制cookie

join cluster

把host2, host3加入到host1的集群

在启动host2和host3的rabbitmq-server

查看cluster_status

设置同步策略

ha-mode有三种:

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

至此,高可用配置完成。

如果应用支持配置多个rabbitmq,那么到这里可以结束了。

如果不支持多个rabbitmq,那么继续配置nginx代理。

rabbitmq代理

host1增加nginx配置文件/etc/nginx/conf.d/rabbitmq_proxy.conf:

测试一下:

添加一个队列:testqueue

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

可以看到已经队列创建成功,此时它是属于rabbitmq-01(这里用了rabbitmq-01替代host01,下同)的

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

停掉rabbitmq-01的服务后,可以看到testqueue在rabbitmq-02上被激活

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

代理配置完成,应用中配置rabbitmq设置为nginx代理的ip和port即可。

rabbitmq_management代理

host1增加nginx配置文件/etc/nginx/conf.d/rabbitmq_mgr_proxy.conf:

高可用笔记(4)rabbitmq安装rabbitmqweb管理工具rabbitmq集群nginx代理

done !

继续阅读