参考资料

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.把rabbit@QA-5-83节点加入rabbit@QA-5-82节点(在rabbit@QA-5-83机器上运行以下命令)
sbin/rabbitmqctl join_cluster rabbit@QA-5-82(这是加入了一个磁盘节点,也就是内部节点)
(如果是内存节点,加入的命令是rabbitmqctl join_cluster --ram rabbit@queue 多了一个--ram的参数代表是内存节点,对外公开使用的一般是外部节点也就是内存节点)
C.开启所有的节点sbin/rabbitmqctl start_app
D.查看集群节点状态sbin/rabbitmqctl cluster_status,如果出现nodes中包含了rabbit@QA-5-82和rabbit@QA-5-83两台机器,则集群搭建成功
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集群搭建流程的更多相关文章

  1. Es学习第十课,ElasticSearch集群搭建

    前面几课我们已经把ES的基本概念和查询了解了,大家知道ES的核心优势就是天生支持分布式,所以,这课我们专门讲讲怎么搭建实现ES的集群部署. ES分布式原理 1.es分布式概念 主分片(Primary ...

  2. Redis复制与可扩展集群搭建

    抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一 ...

  3. (转)Redis复制与可扩展集群搭建

    讨论了Redis的常用数据类型与存储机制,本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题. Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过 ...

  4. FastDFS教程IV-文件服务器集群搭建

    1.简介     本文主要介绍FastDFS文件服务器的集群搭建,在阅读本文之前,您需具备FastDFS文件服务器单节点安装,扩容,迁移等方面的知识.同时,您还需了解Keepalived,nginx方 ...

  5. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  6. redis-cluster集群搭建

     Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Sha ...

  7. fastdfs集群版搭建(一)- storage集群搭建与统一入口访问

    前言 接着上篇博客:详细的最新版fastdfs单机版搭建,今天来讲讲fastdfs的集群搭建,限于篇幅,今天先搭建stoarge集群,并实现统一的http访问方式: 没看我上篇博客的小伙伴,最好先去瞅 ...

  8. RabbitMQ高级指南:从配置、使用到高可用集群搭建

    本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...

  9. Redis复制与可扩展集群搭建【转】

    本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题. Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是 ...

随机推荐

  1. .NET中Redis安装部署及使用方法简介

    一Redis服务端以服务方式运行 修改端口压缩文件中配置的是6488 修改密码 修改库的数量 工具配置安装后如下图 二Redis服务端以控制台方式运行 第一步配置本地服务 第二部安装和配置客户端 三C ...

  2. tableView 短剪线离开15像素问题

    ios7于,UITableViewCell左将默认15空白像素. 建立setSeparatorInset:UIEdgeInsetsZero 空白可以去除. ios8中.setSeparatorInse ...

  3. 文档流 css中间float clear和布局

    文档流 先说说什么是公文流转  什么流 它是一系列连续的东西 <div style="background-color:pink;width:40px;height:80px;&quo ...

  4. SignalR的实时高频通讯

    SignalR的实时高频通讯 第五章SignalR的实时高频通讯 概述:本例子演示了如果创建一个对象与其他浏览器共享实时状态的应用程序.我们要创建的应用程序为“MoveShape”,该MoveShap ...

  5. Python学习笔记16:标准库多线程(threading包裹)

    Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率 ...

  6. easyui datagrid datagrid-filter bug

    问题描述:空字符串.数字过滤 过滤异常 修改js源码: $.fn.datagrid.defaults.operators = { nofilter: { text: 'No Filter' }, co ...

  7. 用Iconv应对NodeJs对称加密技术在汉字编码与NoSQL的一些坑洞

    ·起因 汉字编码技术在实际应用中总是会存在这样或者那样的问题,尤其是在一些热门NoSQL方面多少会遇到挑战.比方说Cassandra字符集还不直接支持GB2312,要想存储写汉字那可真是麻烦.当然这还 ...

  8. jQuery 文件碎片

    经JS操作DOM节点可以是节点的单位,让我们连接节点,能够createElement,createTextNode,然后,appendChild定在一起,然后再用appendChild或insertB ...

  9. API接口开发简述示例

    作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的.API(Application Programming Interfac ...

  10. 验证(C#和正则表达式)

    原文:验证(C#和正则表达式) 我们经常会需要验证字符串的格式,比如密码长度范围.电子邮件格式.固定电话号码和手机号码格式等,这个时候我们经常会需要用到正则表达式.但是正则表达式用起来性能会低一点,所 ...