1.Erlang 安装

  1. wget http://www.erlang.org/download/otp_src_R14B.tar.gz
  2. tar -zxf otp_src_R14B01.tar.gz
  3. cd otp_src_R14B01
  4. ./configure
  5. make
  6. make install  注意在make install 时使用root权限
2. xmlto (rabbitmq 编译安装时需要使用)
  1. wget  https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.gz
  2. yum install -y docbook-style-xsl
  3. tar -zxf xmlto-0.0.23.tar.gz
  4. cd xmlto-0.0.23
如果 机器上python 版本为2.6以下版本 会提示You don't appear to have simplejson.py installed 安装SimpleJson
3.SimpleJson安装(python 2.6以下安装)
  1. wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.1.3.tar.gz#md5=58d9b1d8fa17ea4ce205cea088607e02
  2. tar -zxf simplejson-2.1.3.tar.gz
  3. cd simplejson-2.1.3
  4. cp simplejson 到 python安装目录下 如: /usr/local/lib/python2.5
  5. cp -r ../simplejson /usr/lib64/python2.4/
4.RabbitMQ安装
  1. wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.3.1/rabbitmq-server-2.3.1.tar.gz
  2. tar -zxf rabbitmq-server-2.3.1.tar.gz
  3. cd rabbitmq-server-2.3.1
  4. make
  5. make TARGET_DIR=/u/longcheer/rabbitmq SBIN_DIR=/u/longcheer/rabbitmq/sbin MAN_DIR=/u/longcheer/rabbitmq/man install    注意在make install 时使用root权限
5. 配置rabbitmq
cd rabbitmq/sbin
rabbitmq-server文件中有三个参数修改为本用户可见目录
#Eralng控制文件
CONFIG_FILE= /etc/rabbitmq/rabbitmq
#日志文件
LOG_BASE= /u/rabbitmq/logs
#数据库文件
MNESIA_BASE= /u/rabbitmq/db
  1. groupadd -g 10001 rabbitmq
  2. useradd -u 10001 -g 10001 rabbitmq
  3. chown -R long:long rabbitmq
  4. mkdir -pv /u/rabbitmq/logs
  5. mkdir -pv /u/rabbitmq/db
  6. chown rabbitmq:rabbitmq /u/rabbitmq/logs
  7. chown rabbitmq:rabbitmq /u/rabbitmq/db
6.启动RabbitMQ
  1. cd rabbitmq/sbin
  2. ./rabbitmq-server start
或设置后台运行 nohup ./rabbitmq-server start > nohup.out&
成功启动后会有日下提示:
  1. Activating RabbitMQ plugins ...
  2. 0 plugins activated:
  3. +---+   +---+
  4. |   |   |   |
  5. |   |   |   |
  6. |   |   |   |
  7. |   +---+   +-------+
  8. |                   |
  9. | RabbitMQ +---+   |
  10. |           |   |   |
  11. |   v2.3.1 +---+   |
  12. |                   |
  13. +-------------------+
  14. AMQP 0-9-1 / 0-9 / 0-8
  15. Copyright (C) 2007-2011 VMware, Inc.
  16. Licensed under the MPL. See http://www.rabbitmq.com/
  17. broker running
Rabbitmq集群环境的搭建
一个rabbitmq集 群中可以共享 user,vhost,queue,exchange等,所有的数据和状态都是必须在所有节点上复制的,一个例外是,那些当前只属于创建它的节点的消息队列,尽管它们可见且可被所有节点读取。rabbitmq节点可以动态的加入到集群中,一个节点它可以加入到集群中,也可以从集群环集群会进行一个基本的负载均衡。
集群中有两种节点:
1 内存节点:只保存状态到内存(一个例外的情况是:持久的queue的持久内容将被保存到disk)
2 磁盘节点:保存状态到内存和磁盘。
内存节点虽然不写入磁盘,但是它执行比磁盘节点要好。集群中,只需要一个磁盘节点来保存状态 就足够了
如果集群中只有内存节点,那么不能停止它们,否则所有的状态,消息等都会丢失。
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在$HOME/.Erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信。
-r-------- 1 long long21 Aug 1 08:08 .erlang.cookie
1 将其中一台节点上的.erlang.cookie值复制下来保存到其他节点上。或者使用scp的方法也可,但是要注意文件的权限和属主属组。
  1. $ cat .erlang.cookie
  2. IYZNFNJIUWABJUELIUFE
将值保存到其他节点上:
先更改文件权限,给予其可写权限:
  1. $chmod 700 .erlang.cookie
  2. $ echo -n " IYZNFNJIUWABJUELIUFE" >$HOME/.erlang.cookie
  3. $chmod 400 .erlang.cookie
PS:此步骤建议在rabbitmq启动之前完成。
2 确保节点之间主机名称可以相互解析。
182.71.**   LCT-IND-DB1
182.71.**         LCT-IND-DB2
182.71.**         LCT-IND-APP1
182.71.**         LCT-IND-APP2
前期准备工作已经完成,下面就来开始rabbitmq集群的配置,有了erliang的集群环境,rabbitmq集群环境构建起来很简单,只需要把其他节点添加到一台节点中即可,这里采用将LCT-IND-APP2,LCT-IND-APP1添加到LCT-IND-DB2上的方法。 只需简单的几步即可。如无特殊说明,以下步骤在APP2和APP1上都要做。
  1. $cd /u/rabbitmq/sbin
  2. $./rabbitmq-server –detached //三个节点都启动
  3. $./rabbitmqctl status   //查看状态
  4. $./rabbitmqctl stop_app
  5. $./rabbitmqctl reset
在LCT-IND-APP2上:
  1. $./rabbitmqctl cluster rabbit@LCT-IND-DB2 rabbit@LCT-IND-APP2 //添加APP2到DB2中为disk node
在LCT-IND-APP1上:
  1. $./rabbitmqctl cluster rabbit@LCT-IND-DB2 rabbit@LCT-IND-APP1 //添加APP1到DB2中为disk node
  2. $./rabbitmqctl start_app
在APP2上查看集群状态:
  1. $/u/rabbitmq/sbin/rabbitmqctl status
  2. Status of node 'rabbit@LCT-IND-APP2' ...
  3. [{running_applications,[{rabbit,"RabbitMQ","2.3.1"},
  4. {mnesia,"MNESIA CXC 138 12","4.4.15"},
  5. {os_mon,"CPO CXC 138 46","2.2.5"},
  6. {sasl,"SASL CXC 138 11","2.1.9.2"},
  7. {stdlib,"ERTS CXC 138 10","1.17.1"},
  8. {kernel,"ERTS CXC 138 10","2.14.1"}]},
  9. {nodes,[{disc,['rabbit@LCT-IND-DB2','rabbit@LCT-IND-APP2',
  10. 'rabbit@LCT-IND-APP1']}]},
  11. {running_nodes,['rabbit@LCT-IND-APP1','rabbit@LCT-IND-DB2',
  12. 'rabbit@LCT-IND-APP2']}]
改变节点类型,以APP2为例:
  1. $./rabbitmqctl stop_app
  2. $./rabbitmqctl cluster rabbit@LCT-IND-DB2 //将APP2改为ram node
  3. $./rabbitmqctl start_app
重启集群节点:
$./rabbitmqctl stop//关闭某一个节点
$./rabbitmqctl status //查看集群节点状态
$./rabbitmq-server –detached
PS:在任何时候必须有一个disk node在运行。
节点退出集群,以APP1为例:
$./rabbitmqctl stop_app
Stopping node rabbit@ LCT-IND-APP1 ...done.
$./rabbitmqctl reset //如果只剩最后一个节点,退出集群时使用force_reset 
Resetting node rabbit@ LCT-IND-APP1 ...done.
$./rabbitmqctl start_app
Starting node rabbit@ LCT-IND-APP1 ...done.
如果在rabbitmq单机版服务开启的过程中,改动erlang.cookie,就会在服务重启后出现各种各样的问题,所以建议在rabbitmq的服务开启之前要把erlang.cookie配置好。如果出现问题,解决方法就是将服务停掉后执行以下命令:
rm –f /var/lib/rabbitmq/mnesia/rabbit/*
如果在rabbitmq-server的配置文件中更改了数据库存放目录,则执行以下命令:
rm –f /path/to/rabbitmq/db/rabbit/*
重启服务即可!
参考文章:
http://www.rabbitmq.com/clustering.html
http://www.godlikemouse.com/2010/12/14/how-to-cluster-rabbit-mq/

转载于:https://blog.51cto.com/lyp0909/640550

Rabbitmq的安装及集群环境的搭建相关推荐

  1. Hadoop集群环境配置搭建

    一.简单介绍 Hadoop最早诞生于Cutting于1998年左右开发的一个全文文本搜索引擎 Lucene,这个搜索引擎在2001年成为Apache基金会的一个子项目,也是 ElasticSearch ...

  2. docker-Consul的概述及consul集群环境的搭建

    目录 一.概述 Consul的作用 二.搭建consul集群环境 1.安装Consul 2.配置容器服务自动加入nginx集群 (1)安装Gliderlabs/Registrator (2)测试服务 ...

  3. 科普扫盲---centos7 集群环境的搭建指南

    一般集群所需要的到底是什么环境?,需要明白的一件事,集群是由一个个单例服务通过各个单例服务之间的socket通信,从而规避一些性能瓶颈,达到1+1大于2的效果. 常见的集群有:weblogic集群,r ...

  4. RabbitMQ的安装及集群搭建方法

    转自:http://blog.csdn.net/u013256816/article/details/53524766 RabbitMQ安装 1 安装erlang 下载地址:http://www.er ...

  5. 完整安装kubernetes集群环境(不需要科学上网)

    1.准备基础环境 我们将使用kubeadm部署3个节点的 Kubernetes Cluster 节点详细信息: 节点主机名 节点IP 节点角色 操作系统 节点配置 k8s-master 192.168 ...

  6. 二进制包安装Kubernetes集群环境完整版

    Kubernetes 概述 1. Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. K8S用于容器化应用程序的部署 ...

  7. (超详细版)Linux下Hadoop2.7.1集群环境的搭建(3台为例)

    2019独角兽企业重金招聘Python工程师标准>>> 一.基础环境 在Linux上安装Hadoop之前,需要先安装两个程序: 1.1 安装说明 1. JDK 1.6或更高版本(本文 ...

  8. @ELK集群环境部署搭建

    文章目录 ELK部署搭建 1.ELK简述 2.ELK功能介绍 3.ELK组件官方下载 4.ELK部署安装 1)elk组件下载 2)es部署安装 3)kibana部署安装 4)Logstash部署安装 ...

  9. mysql三台机群集_MySQL Cluster 3台机器搭建集群环境

    最后还是通过三台机器实现了linux下的mysql集群,这边首先要感谢众多网络上提供帮助教程,虽然有些没有经过实践无法真正达到效果,但是这次给MGM项目的这个开头还是不错. 书归正传,这边用的是vmw ...

  10. Ubuntu上安装Hadoop集群

    戳蓝字"CSDN云计算"关注我们哦! 前面我们介绍了在Ubuntu上安装Hadoop单机版.但是我们知道,Hadoop在实际工作中都是以集群的形式存在的,毕竟需要处理大量的数据,单 ...

最新文章

  1. threshold 二值化的实现
  2. 中国微型计算机分省市产量数据统计,2017年6月中国微型计算机设备产量统计数据分析...
  3. locate: command not found updatedb: command not found
  4. spring扩展点四:SmartInitializingSingleton的应用
  5. android 圆形相机预览拍照_Android Camera2 Api 实现预览和拍照
  6. 2020离散数学系列
  7. 离散状态方程和连续状态方程 matlab,信号与系统实验(MATLAB 西电版)实验19 离散系统状态方程的求解.ppt...
  8. 网站服务器cpu要求,MC游戏服务器CPU有什么要求?
  9. intel DQ77KB 主板使用说明书
  10. html5 游戏 黑屏,战地5游戏最新黑屏无限加载解决方法
  11. PIC16F877A与Proteus仿真-PIC16F877A最小系统及开发环境搭建
  12. 财务投资者和战略投资者有什么分别
  13. 10w+ Excel 数据导入,怎么优化?
  14. 最大机枪池被黑客攻击,BSC接连被暴击后将走向何方?
  15. Google地球(GPS)坐标之地图坐标偏移
  16. 获取屏幕的高度和宽度DisplayMetrics
  17. 使用K-means算法聚类灰度图
  18. 目标检测3维/点云/遥感数据集
  19. 深度学习——CNN(卷积神经网络)(超详细)
  20. gym100851F Froggy Ford

热门文章

  1. ASP.NET AJAX 1.0 Beta 2 发布
  2. [LeetCode] 92. Reverse Linked List II 反向链表II
  3. Fragment生命周期(转)
  4. 利用360安全防护代码加固你的网店、网站
  5. 鲍尔默先生,请拿出证据
  6. Lesson 05 for Plotting in R for Biologists
  7. 计算机职称评定认可增刊吗,核心期刊增刊评定职称可以用吗?
  8. 斐波那契数列【java实现】
  9. HDU 2148 Score
  10. 玩转spring boot——结合AngularJs和JDBC