RabbmitMQ集群搭建流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbmitMQ集群搭建流程相关的知识,希望对你有一定的参考价值。

参考资料

1.rabbmitMQ集群搭建
http://my.oschina.net/guol/blog/186445
http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/
http://www.360doc.com/content/14/0912/09/15077656_408834747.shtml
http://www.cnblogs.com/lzzhang/p/4786468.html
http://wenku.baidu.com/link?url=esD2eJeldjww93lErRm4Ui5AFJ34cNFBxX73jpXTzkzJjo9BACzxI8jeko_genwKDwRpGLJbHv_X2Tw9LBN2rmM4H6bZs5h622FrxZkq1vu
http://www.cnblogs.com/flat_peach/archive/2013/04/07/3004008.html
2.zookeeper集群搭建
http://www.cnblogs.com/xiaoxutongxue/p/3554242.html
3.nginx安装教程
http://blog.csdn.net/dyllove98/article/details/8892509

搭建流程

1.zookeeper搭建流程
(1)qa环境现在使用的zookeeper用的是伪集群,其实就是一台机器,ip全在一台机器上,这里配置端口的时候要尤其注意,不能重复,否则zookeeper是启动不起来的
(2)线上正式环境应该用的是一个正式的zookeeper集群,正式集群的搭建参考:http://www.cnblogs.com/xiaoxutongxue/p/3554242.html
查看两台机器的zookeeper状态,有一台是leader有两台是follower就启动正常了。

2.rabbmitMQ单机搭建流程
(1) Erlang 安装(rabbmitMQ的使用erlang语言写的,安装rabbmitMQ的底层依赖)
A.创建erlang文件夹,mkdir /usr/local/erlang
B.把安装文件拷贝进去,cp /root/otp_src_R14B.tar.gz /usr/local/erlang/
C.添加文件的权限,chmod +x otp_src_R14B.tar.gz
D.解压文件, tar -zxf otp_src_R14B01.tar.gz
E.安装文件 ./configure、make 、make install(这是三个不同的命令,三次命令依次安装完成)
(2) xmlto (rabbmitMQ编译安装时需要使用)
A.创建路径, mkdir /usr/local/xmlto
B.拷贝文件到路径下, cp /root/xmlto-0.0.23.tar.gz /usr/local/xmlto/
C.添加权限
D.解压并且安装,yum install -y docbook-style-xsl、./configure、make 、make install(这是四个不同的命令,四次命令依次安装完成)
(3)SimpleJson安装(python已经安装好的前提下)
A.创建路径,拷贝进去,添加文件权限,解压文件夹,进入解压以后的路径完成安装
安装命令: python setup.py install(这是由于simplejson是依赖python脚本的)
(4)rabbmitMQ安装
A.创建路径,拷贝文件,添加文件权限,解压文件,进入路径之后,命令 ln -s rabbitmq-server-generic-unix rabbitmq( 建立软链接)
注意要把机器hostname和ip地址配置在hosts文件中。
B.开启rabbmitMQ的后台web管理页面(先启动运行rabbmitMQ,在开启后台web管理)
sbin/rabbitmq-plugins enable rabbitmq_management
C.关闭机器的防火墙
D.添加管理员账号(http://blog.csdn.net/zyz511919766/article/details/42292655 )
添加用户:sbin/rabbitmqctl add_user user_admin passwd_admin
把用户变成管理员:sbin/rabbitmqctl set_user_tags user_admin administrator

3.rabbmitMQ集群搭建
A.保证/root/.erlang.cookie的值一致
B.把[email protected]节点加入[email protected]节点(在[email protected]机器上运行以下命令)
sbin/rabbitmqctl join_cluster [email protected](这是加入了一个磁盘节点,也就是内部节点)
(如果是内存节点,加入的命令是rabbitmqctl join_cluster --ram [email protected] 多了一个--ram的参数代表是内存节点,对外公开使用的一般是外部节点也就是内存节点)
C.开启所有的节点sbin/rabbitmqctl start_app
D.查看集群节点状态sbin/rabbitmqctl cluster_status,如果出现nodes中包含了[email protected][email protected]两台机器,则集群搭建成功
E:通过lvs把所有的rabbmitMQ的外部节点,也就是内存节点进行负载均衡的配置,集群就搭建完毕了

两个问题
1.vhost问题,所有的队列都有一个属于自己的vhost,所有rabbmitMQ登录的user也有一个自己的vhost,必须对应好vhost才能做正确的操作。
vhost可以通过rabbitmqctl 进行进行添加,之前郑磊他们使用的是vhost=99,参考http://my.oschina.net/guol/blog/186445
2.niginx配置,必须是在装有consumer的机器上去做niginx端口转发配置,因为consumer的配置文件访问rabbmitMQ走的是默认的80端口,然而rabbmitMQ默认的都是15672端口,必须用nginx做端口转发,这样才可以正常的调用rabbmitMQ

以上是关于RabbmitMQ集群搭建流程的主要内容,如果未能解决你的问题,请参考以下文章

Redis集群搭建完整流程演示

如何利用redis来进行分布式集群系统的限流设计

docker上搭建consul集群全流程

RabbmitMQ-简单使用

docker上搭建consul集群全流程

RabbmitMQ-工作队列及相关概念