参考资料

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. 模拟linux下的ls -l命令

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  2. Echarts Jqplot嵌extjs4 windows 装配方法

    js组件绘图终于是画在一个指定id的div或dom元素中. 在项目中有可能须要画在 Extjs容器中,研究了一下,能够通过下面的思路实现,方法跟大家共享下: 1.首先做一个容器,把此内容加入到wind ...

  3. NSOJ Constructing Roads(图论)

    There are N villages, which are numbered from 1 to N, and you should build some roads such that ever ...

  4. React实践

    React实践(一)   该实践取自官方教程:https://github.com/reactjs/react-tutorial 主要是自实现的过程以及一些心得体会 该实践是实现一个评论框. 一个展示 ...

  5. 基于 Android 的 3D 视频样本代码

    作者:Mark Liu 下载样本代码 简单介绍 在Android 中,创建一个可以播放视频剪辑的应用很easy:创建一个採用 3D 图形平面的游戏应用也很easy.可是,创建一个可以在 3D 图形对象 ...

  6. MAC 命令行工具(Command Line Tools)安装

    不过升级后安装命令行工具(Command Line Tools)时发现官网没有clt的下载安装包了,原来改了,使用命令在线安装. 打开终端,输入命令:xcode-select --install 选择 ...

  7. [CLR via C#]1.3 加载公共语言运行时

    原文:[CLR via C#]1.3 加载公共语言运行时 1. 你生成的每个程序集可以是EXE,也可以是DLL.最终都是有CLR管理这些程序集中代码的执行. 2. VS2010中,创建新的EXE项目时 ...

  8. file 上传文件后缀名 限制

    比如: 要求只能上传Excel <input type="file" accept="application/vnd.ms-excel,application/vn ...

  9. 深入理解C指针之四:指针和数组

    原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...

  10. linux 在系统启动过程

    从学习<鸟哥linux私人厨房> 用于在计算机系统启动,计算机硬件和软件由(它包含的操作系统软件)包括.对于操作系统在同一台计算机硬件方面的表现,该系统配备有硬件是公用,不同的系统是 的操 ...