RabbitMq 集群搭建
实验环境:
操作系统为 Centos 7.2
IP hostName
192.168.190.132 node132
192.168.190.139 node139
192.168.190.140 node140
RabbitMQ相关端口
- 4369 (epmd)
- 5672, 5671 (AMQP 0-9-1 and 1.0 without and with TLS)
- 25672. This port used by Erlang distribution for inter-node and CLI tools communication and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). Seenetworking guide for details.
- 15672 (if management plugin is enabled)
- 61613, 61614 (if STOMP is enabled)
- 1883, 8883 (if MQTT is enabled)
相应端口开启防火墙设置
添加EPEL源
[root@node139 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
warning: /var/tmp/rpm-tmp.2hDPSr: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-8 ################################# [100%]
添加Erlang源
[root@node139 ~]# rpm -Uvh http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Retrieving http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:erlang-solutions-1.0-1 ################################# [100%]
--2016-11-29 06:34:38-- http://packages.erlang-solutions.com/rpm/centos/erlang_solutions.repo
Resolving packages.erlang-solutions.com (packages.erlang-solutions.com)... 31.172.186.53
Connecting to packages.erlang-solutions.com (packages.erlang-solutions.com)|31.172.186.53|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 245
Saving to: 'erlang_solutions.repo'
100%[==========================================================================>] 245 --.-K/s in 0s
2016-11-29 06:34:39 (27.5 MB/s) - 'erlang_solutions.repo' saved [245/245]
安装RabbitMQ
软件版本:http://www.rabbitmq.com/releases/rabbitmq-server
[root@node139 ~]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
[root@node139 ~]# rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
[root@node139 ~]# yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动服务
[root@node139 ~]# systemctl enable rabbitmq-server.service
[root@node139 ~]# systemctl start rabbitmq-server.service
启用RabbitMQ监控插件
[root@node139 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@node139... started 6 plugins.
[root@node139 ~]# netstat -apn | grep 15672
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 4119/beam.smp
RabbitMQ用户管理
添加用户(用户名root,密码admin)
[root@node139 ~]# rabbitmqctl add_user admin admin
设置用户角色(设置admin用户为管理员角色)
[root@node139 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
设置用户权限(设置admin用户配置、写、读的权限)
[root@node139 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
删除用户(删除guest用户)
[root@node139 ~]# rabbitmqctl delete_user guest
RabbitMQ集群配置
集群配置在单机配置完成的基础上进行
以下以node140为例,node132需要做同样的操作
- 添加/etc/hosts条目
在node132、node139、node140里的/etc/hosts文件中分别添加:
192.168.190.132 node132
192.168.190.139 node139
192.168.190.140 node140
- 设置每个节点Cookie
的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信
[root@node140 /]# echo -n "AZVOCZYZZBVFLBPTBXU" > /var/lib/rabbitmq/.erlang.cookie
[root@node140 ~]# chown rabbitmq:root /var/lib/rabbitmq/.erlang.cookie
[root@node140 /]# chmod 600 /var/lib/rabbitmq/.erlang.cookie
[root@node140 /]# cat /var/lib/rabbitmq/.erlang.cookie
AZVOCZYZZBVFLBPTBXU
启动服务
[root@node140 ~]# systemctl start rabbitmq-server.service
[root@node140 ~]# rabbitmq-server -detached
开通防火墙
[root@node140 ~]# firewall-cmd --permanent --add-port={4369/tcp,25672/tcp}
success
[root@node140 ~]# firewall-cmd --reload
success
- 加入集群
默认是磁盘节点,如果是内存节点的话,需要加--ram参数
[root@node140 ~]# rabbitmqctl stop_app
Stopping node rabbit@node140 ...
[root@node140 ~]# rabbitmqctl join_cluster rabbit@node139
Clustering node rabbit@node140 with rabbit@node139 ...
[root@node140 ~]# rabbitmqctl start_app
Starting node rabbit@node140 ...
- 设置镜像策略
[root@node140 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}" with priority "0" …
启用RabbitMQ监控插件
cluster搭建起来后若在web管理工具中rabbitmq_management的Overview的Nodes部分看到"Node statistics not available"的信息,说明在该节点上web管理插件还未启用。
[root@node140 ~]# rabbitmq-plugins enable rabbitmq_management
集群配置好后,可以在 RabbitMQ 任意节点上执行下面的命令来查看是否集群配置成功。
[root@node140 ~]# rabbitmqctl cluster_status
其它节点需要做同样的操作
登录站点http://192.168.190.139:15672/


参考网址:http://www.rabbitmq.com/clustering.html
安装中遇到的问题:
这个/var/lib/rabbitmq/.erlang.cookie文件需要修改文件所有者和文件的权限为rw,否则rabbitmq服务无法启动;
RabbitMq 集群搭建的更多相关文章
- RabbitMQ集群搭建和使用
一.环境准备 1.选择RabbitMQ的版本 http://www.rabbitmq.com/changelog.html 注: 不同版本的Linux选择的RabbitMQ版本也不同,参照 http: ...
- centos7 rabbitmq集群搭建+高可用
环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -r -.el ...
- CentOS 7 下 RabbitMQ 集群搭建
环境 10.0.0.20 node1 10.0.0.21 node2 10.0.0.22 node3 搭建(在所有节点执行) 添加EPEL源 [root@node1 ~]# rpm -Uvh http ...
- rabbitmq集群搭建方法简介(测试机linux centos)【转】
本文将介绍四台机器搭建rabbitmq集群: rabbitmq IP和主机名(每台机器已安装RabbitMQ 3.5.6, Erlang 18.1) 192.168.87.73 localhost73 ...
- rabbitmq集群搭建,镜像队列搭建
原文地址:https://www.jianshu.com/p/11963564dd3d 教你如何从0开始搭建rabbitmq集群 一.准备工作 1.三台centos虚拟机 2.三台虚拟机都安装了doc ...
- RabbitMQ集群搭建
准备三个节点,系统为CentOS7 Node IP rabbitmq01 172.50.0.64 rabbitmq02 172.50.0.65 rabbitmq03 172.50.0.66 这里把no ...
- rabbitmq+haproxy+keepalived实现高可用集群搭建
项目需要搭建rabbitmq的高可用集群,最近在学习搭建过程,在这里记录下可以跟大家一起互相交流(这里只是记录了学习之后自己的搭建过程,许多原理的东西没有细说). 搭建环境 CentOS7 64位 R ...
- RabbitMQ的安装及集群搭建方法
RabbitMQ安装 1 安装erlang 下载地址:http://www.erlang.org/downloads 博主这里采用的是otp_src_19.1.tar.gz (200MB+) [roo ...
- 搭建rabbitmq集群
查看rabbitmq日志文件 开启web管理工具 [root@controller rabbitmq]# rabbitmq-plugins list [root@controller rabbitmq ...
随机推荐
- 偶遇this之坑
前言 在写一个懒加载插件时,遇到一个坑,就是this的指向问题,我想这种情况大部分人都会遇到,就写下来,新手也有个参考. 事件 有些页面图片比较多,但用户还不一定会全看,这样的话,全部去加载这些图片, ...
- 【.NET深呼吸】(WPF)跨窗口完成绑定
在99.999975%的情形下,可视化元素之间的相互绑定都会在同一个容器中完成,如同一个窗口,同一个UserControl等.但在极少数的情况下,为了从最大限度减少代码赋值的前提下考虑,是可以使用跨窗 ...
- vue.js 开发生态总结
---title: Vue 1.0 的技术栈date: 2016-09-26 00:48:50tags:category:--- ## vuejs概述 Vue.js是用于构建交互式的Web界面的库.它 ...
- Oracle_创建和管理表
创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...
- 【前端安全】JavaScript防http劫持与XSS
作为前端,一直以来都知道HTTP劫持与XSS跨站脚本(Cross-site scripting).CSRF跨站请求伪造(Cross-site request forgery).但是一直都没有深入研究过 ...
- 单机静默安装GI软件并创建ASM实例和ASM磁盘组
环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...
- 探寻 JavaScript 逻辑运算符(与、或)的真谛
十二月已经过半,冬季是一个美妙的季节,寒冷的空气逼得人们不得不躲在安逸舒适的环境里生活.冬季会给人一种安静祥和的氛围,让人沉浸在其中,仿佛是一个旧的阶段的结束,同时也是一个新的阶段的开始.这么说来,西 ...
- JS魔法堂:深究JS异步编程模型
前言 上周5在公司作了关于JS异步编程模型的技术分享,可能是内容太干的缘故吧,最后从大家的表情看出"这条粉肠到底在说啥?"的结果:(下面是PPT的讲义,具体的PPT和示例代码在h ...
- 全面理解Git
前言 人生贵知心,定交无暮早. 原文博客地址:Git命令总结 知乎专栏&&简书专题:前端进击者(知乎) 前端进击者(简书) 正文 1.Git简介 Git的诞生确实是一个有趣的故事,我 ...
- .NET缓存框架CacheManager在混合式开发框架中的应用(1)-CacheManager的介绍和使用
在我们开发的很多分布式项目里面(如基于WCF服务.Web API服务方式),由于数据提供涉及到数据库的相关操作,如果客户端的并发数量超过一定的数量,那么数据库的请求处理则以爆发式增长,如果数据库服务器 ...