rabibtMQ安装及集群配置-linux
安装RabbitMQ
RabbitMQ是流行的开源消息队列系统,用erlang语言开发,故首先需要安装erlang依赖及erlang。
安装erlang依赖的基本环境,通过yum方式进行安装:
yum -yinstallgcc glibc-develmakencurses-devel openssl-devel autoconf下载并安装erlang,这里使用的是erlang-R15B-02.1.el6.x86_64.rpm,将其拷贝至虚机中并通过yum方式进行安装:
yum -yinstallerlang-R15B-02.1.el6.x86_64.rpm- 测试erlang环境,输入erl

下载rabbitmq官方server版并安装
地址:http://www.rabbitmq.com/install-rpm.html
这里使用的是rabbitmq-server-3.3.5-1.noarch.rpm版本,通过xftp软件或者其他方式上传到虚拟机中,使用yum方式进行安装:yum -yinstallrabbitmq-server-3.3.5-1.noarch.rpm
启动RabbitMQ
通过系统服务启动rabbitmq-server

如果无法正常启动,则可以通过日志进行故障排查
另外通过chkconfig命令可以查看rabbitmq服务是否已经启动:chkconfig --list rabbitmq-server开启RabbitMQ Web管理插件
首先查看插件list的相关信息:rabbitmq-plugins list启动web管理插件:
rabbitmq-pluginsenablerabbitmq_management如果成功启动插件,使用service rabbitmq-server restart命令重启rabbitmq服务,使其生效。
访问web管理插件界面
通过浏览器打开web界面,地址为http://ip:15672/mgmt/,默认的用户名和密码均为guest。
如果无法访问,查看rabbitmq日志信息,可能原因主要有两方面:端口15672被占用、防火墙开启。
通过下面命令关闭防火墙,建议设置为开机自动关闭:service iptables stopchkconfig iptables offGuest账户无法登陆web管理界面
出于安全性的考虑,rabbitmq从3.3版本以后,guest用户默认只能通过localhost才能登陆使用。
这里可以通过创建rabbitmq.config文件,解除上述访问限制。vi/etc/rabbitmq/rabbitmq.config# 内容如下[{rabbit,[%%%% Network Connectivity%% ====================%%%% By default, RabbitMQ will listen on all interfaces, using%% the standard (reserved) AMQP port.%%{tcp_listeners, [5672]},{loopback_users, ["admin"]}]}].
搭建RabbitMQ集群
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。
Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在.erlang.cookie 中,
故必须保证各节点cookie保持一致,否则节点之间就无法通信。建议在做下列操作前,关闭rabbitmq-server服务。
设置节点cookie
cookie文件位于/var/lib/rabbitmq下
将该节点的.erlang.cookie文件内容(如下面的"XXXXXXXXXXXXX"字符串)复制到其他所有节点的同文件中,记得要先赋予文件写权限,写完后再取消写权限:chmod700 .erlang.cookieecho-n"XXXXXXXXXXXXX"> .erlang.cookiechmod400 .erlang.cookie注意:复制字符串时,千万不要带上空格等无用信息
- 确保节点间主机名称可以相互解析
将集群中全部机器的(ip地址 主机名)分别添加到每台机器的hosts文件中:
节点组成集群
首先启动rabbitmq-server的服务,运行各个机器的节点,并查看状态:service rabbitmq-server startrabbitmqctl stoprabbitmq-server -detachedrabbitmqctl status假设有三台机器,分别为node1、node2、node3,那么下面将node2和node3与node1组成集群(即在node2和node3两台机器中做如下操作):
rabbitmqctl stop_apprabbitmqctl join_cluster rabbit@node1rabbitmqctl start_app配置完成后,可以在任意节点机器上执行 rabbitmqctl cluster_status 来查看是否集群配置成功:

设置镜像队列策略
在任意节点上执行下列策略,将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一致。当有新节点加入集群时,队列将被镜像到那个节点。
rabbitmqctl set_policy ha-all"^"'{"ha-mode":"all"}'节点退出集群
以node1节点为例,如果需要将其退出集群
rabbitmqctl stop_apprabbitmqctl rest
创建集群用户
由于后面部署BuildPlatform时,所用到的rabbitmq账户为admin,密码为123456。
因此这里需要首先创建用户,方法主要有两个:
- Web管理页面创建
使用guest账户登陆web管理界面后,点击Admin标签,原本只有一个guest账户,
这里新建admin账户,设置密码,并选中名为[Admin]的Tags:
点击页面右侧的Virtual Host标签后,进入下图中方框的链接:
找到Set permission部分,将admin用户添加到当前Permissions中:
命令行方式创建
创建admin用户rabbitmqctl add_user admin 123456设置admin用户administrator角色rabbitmqctl set_user_tags admin administrator查看已创建用户rabbitmqctl list_users赋予admin用户权限rabbitmqctl set_permissions -p / admin'.*''.*''.*'上述命令确保用户admin具有/这个virtual host中所有资源配置、写、读权限,以便管理其中的资源
建议
强烈建议将RabbitMQ服务设置为开机自启动:
chkconfig rabbitmq-server onrabibtMQ安装及集群配置-linux的更多相关文章
- 从零开始安装Redis 集群(Linux CenOS7)
从零开始安装Redis 集群(Linux CenOS7) 使用ISO安装CentOS7虚拟机 配置静态IP(参考Mac VMware Fusion CentOS7配置静态IP) 安装vim [root ...
- rocketMq安装及集群配置
网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...
- Zookeeper 安装及集群配置注意点
Zookeeper在ubuntu下安装及集群搭建,关于集群搭建,网上很多文章 可以参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-z ...
- zookeeper的安装及集群配置
1.解压 2.修改配置文件 cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/usr/local/zookeeperData 其余采用默认 参数说明: ti ...
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了. 准备文件 从 http://archive.cloudera.com/cdh5/par ...
- Elasticsearch 安装与集群配置
一.软件版本 操作系统:CentOS-6.5-x86_64 ES版本:5.0 主机:192.168.63.246 主机: 192.168.63.242 二.部署环境规划: 1. 需求:jdk版本: ...
- hadoop分布式安装及其集群配置笔记
各机器及角色信息: 共10台机器,hostname与ip地址映射在此不做赘述.此为模拟开发环境安装,所以不考虑将NameNode和SecondaryNameNode安装在同一台机器. 节点 角色 na ...
- elasticsearch简单的安装以及集群配置详解
首先要确保有java8的环境,安装方法如下(centos) wget --no-check-certificate --no-cookies --header "Cookie: oracle ...
- Redis集合 安装 哨兵集群 配置
redis相关 redis基础 redis发布订阅 redis持久化RDB与AOF redis不重启,切换RDB备份到AOF备份 redis安全配置 redis主从同步 redis哨兵集群 redis ...
随机推荐
- 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读 不可反 ...
- React.js终探(六)
在React中,我们怎么样使用它跟CSS 3 动画结合在一起使用呢? CSS3 Transitoin CSS3动画要求DOM属性变化的时候才能够被触发.所以这就需要我们把属性变化后的React元素渲染 ...
- iOS设备per app vpn,什么是什么系统的要求,必须?
坑爹Apple网站信息MDM厂商资料,最有发言权iOS 7.x设备支持per app vpn该,但它没有说明是什么系统要求环保要求. 1. iOS 7.x 设备.当然 2. iOS 7.x 需要设备M ...
- PHP和MySQL Web开发 原书第4版 高清文字版,有目录,附带源码
PHP和MySQL Web开发 原书第4版:http://yunpan.cn/QCWIS25zmYTAn 提取码 fd9b PHP和MySQL Web开发 原书第4版源码:http://yunp ...
- struts2 模型分配问题和延迟加载问题
傅型号值问题: 首先须要说明的是:Action在请求到达ActionProxy时已经创建出来了,而且对应的创建了一个值栈. 在拦截器到达之前这个图片已经OK了.Action已经创建.并且压入了值栈vs ...
- 使用PHP生成PDF文档
原文:使用PHP生成PDF文档 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快 ...
- 在ASP.NET MVC中使用IIS级别的URL Rewrite
原文 在ASP.NET MVC中使用IIS级别的URL Rewrite 大约一年半前,我在博客上写过一系列关于URL Rewrite的文章(2.3.4),把ASP.NET平台上进行URL Rewrit ...
- 苹果新的编程语言 Swift 语言进阶(十二)--选项链
选项链是使用选项来查询和调用其属性.方法或下标的一个过程,假设选项包括一个值,则属性.方法.下标的查询和调用成功,否则,调用返回nil. 选项链能用在不论什么类型的选项来检查对其一个属性.方法.下标的 ...
- Python - 字符串的替换(interpolation) 具体解释
字符串的插值(interpolation) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27054263 字符串的替换 ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...