centos7 rabbitMQ集群搭建
资料参考网址
http://blog.csdn.net/woogeyu/article/details/51119101
http://www.cnblogs.com/lion.net/p/5725474.html
https://segmentfault.com/a/1190000010693696#articleHeader4
https://segmentfault.com/a/1190000010702020
rabbitMQ集群搭建注意问题
不同于单机多节点的情况,在多机环境,如果要在cluster集群内部署多个节点,需要注意两个方面:1 保证需要部署的这几个节点在同一个局域网内2 需要有相同的Erlang Cookie,否则不能进行通信,为保证cookie的完全一致,采用从一个节点copy的方式复制到其他节点。
时间同步:
yum install ntpdate
ntpdate time.nist.gov
环境准备
192.168.138.131 centos-01
192.168.138.132 centos-02
192.168.138.133 centos-03
各节点都要安装RabbitMQ(集群前提) RabbitMQ 安装需要依赖 Erlang 环境
yum install wget$ cd /opt$ wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm$ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm
安装 RabbitMQ
$ cd /opt
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm
cd /sbin/
rabbitmq-plugins enable rabbitmq_management (管理界面开启)
rabbitmq-server -detached (后台启动)或者 service rabbitmq-server start
service rabbitmq-server status
rabbitmqctl stop
放开5672与15672端口
firewall-cmd --permanent --zone=public --add-port=5672/tcp
firewall-cmd --permanent --zone=public --add-port=15672/tcp
systemctl restart firewalld.service
访问http://ip:15672/ 账户:guest 密码: guest登陆不进去解决
cd /var/log/rabbitmq/
less rabbit@localhost.log
这里显示的是没有找到配置文件,我们可以自己创建这个文件
config file(s) : /etc/rabbitmq/rabbitmq.config (not found)
创建rabbitmq.config
cd /etc/rabbitmq/
touch rabbitmq.config
vi rabbitmq.config
编辑内容如下:
[{rabbit, [{loopback_users, []}]}].
注意:这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。
开机自启动
chkconfig rabbitmq-server on
设置不同节点间同一认证的Erlang Cookie 使用以下命令将centos-01中的/var/lib/rabbitmq/.erlang.cookie 复制到其他节点。在centos-01节点运行以下命令:
cd /var/lib/rabbitmq/
ll -a .erlang.cookie (该文件是隐藏文件)
scp /var/lib/rabbitmq/.erlang.cookie root@centos-02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@centos-03:/var/lib/rabbitmq/.erlang.cookie
会提示输入yes 和 密码由于文件是400的权限,所以在centos-02以及centos-03节点运行以下命令:
chmod 600 /var/lib/rabbitmq/.erlang.cookie
界面
在centos-01节点增加用户,并且为用户赋予权限
rabbitmqctl add_user pyps pyps
rabbitmqctl set_user_tags pyps administrator
rabbitmqctl set_permissions -p / pyps '.*' '.*' '.*'
通过http://192.168.138.131:15672 用户名为:pyps 密码为:pyps联入第一台配置成功的RabbitMQ服务器。其他节点暂不配置
组成集群
这个centos-01节点也可以不执行,直接在节点服务器执行下边的脚本,不过得保证这个rabbitmq服务是正常启动的centos-01 $ rabbitmqctl stop_app 按照顺序执行 先centos-02,centos-03
centos-02 $ rabbitmqctl stop_app # 停止rabbitmq服务
centos-02 $ rabbitmqctl join_cluster rabbit@centos-01 # centos-02和centos-01构成集群, centos-02必须能通过centos-01的主机名ping通
centos-02 $ rabbitmqctl start_app # 开启rabbitmq服务centos-03 $ rabbitmqctl stop_app # 停止rabbitmq服务
centos-03 $ rabbitmqctl join_cluster rabbit@centos-01 # centos-03和centos-01构成集群, centos-02必须能通过centos-01的主机名ping通
centos-03 $ rabbitmqctl start_app #要复制队列内容到集群里的每个节点,需要创建镜像队列RabbitMQ镜像功能:(在普通集群的中任意节点启用策略,策略会自动同步到集群节点)rabbitmqctl set_policy -p hrsystem ha-allqueue"^" '{"ha-mode":"all"}'例如下面的命令,^message 这个规则要根据自己修改,这个是指同步"message"开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为"^"。rabbitmqctl set_policy -p hrsystem ha-allqueue "^message" '{"ha-mode":"all"}'
分别查看下每个节点
rabbitmqctl cluster_status
每个节点
firewall-cmd --permanent --zone=public --add-port=25672/tcp
systemctl restart firewalld.service
或者关闭防火墙
systemctl stop firewalld.service
安装HAProxy
选择开源的HAProxy为RabbitMQ集群做负载均衡器,在CentOS 7.0中安装HAProxy。1安装epel(清华大学开源软件镜像站)rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm2 安装HAProxyyum list |grep haproxyyum -y install haproxy.x86_64 HA-Proxy version 1.5.18
3 配置HAProxy(这台机器centos-03 192.168.138.133)cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak (备份)vi /etc/haproxy/haproxy.cfg ####################################################################
listen private_monitoring bind 192.168.138.133:8989 mode httpoption httploglog globalstats enablestats refresh 30s stats show-node stats uri /haproxy?stats stats realm Haproxy\ Statisticsstats auth admin:admin
####################################################################
listen rabbitmq_local_cluster bind 192.168.138.133:5670option tcplogmode tcptimeout client 3htimeout server 3hoption clitcpkabalance roundrobin server rabbit131 192.168.138.131:5672 check inter 5s rise 2 fall 3server rabbit132 192.168.138.132:5672 check inter 5s rise 2 fall 3server rabbit133 192.168.138.133:5672 check inter 5s rise 2 fall 3启动访问http://192.168.138.133:8989/haproxy?stats无显示页面 解决办法(当前版本HA-Proxy version 1.5.18) 低于1.7.5版本需要执行vi /etc/sysconfig/selinux SELINUX=disabled:wq! #保存退出reboot
放开5670与8989端口
firewall-cmd --permanent --zone=public --add-port=5670/tcp
firewall-cmd --permanent --zone=public --add-port=8989/tcp
firewall-cmd --permanent --zone=public --list-ports
systemctl restart firewalld.service service haproxy status #查看状态
service haproxy start #启动
service haproxy stop #关闭
service haproxy restart #重启
chkconfig haproxy on #设置开机启动
各节点 启用stomp plugin命令代码 websocket使用了rabbitmq stomp协议 需要启动他
rabbitmq-plugins enable rabbitmq_web_stomp
rabbitmq-plugins enable rabbitmq_web_stomp_examples
centos7 rabbitMQ集群搭建相关推荐
- RabbitMQ集群搭建(七)
先来介绍一下RabbitMQ集群 RabbitMQ集群有两种模式,一种是普通模式,即默认的集群模式,另外一种为镜像模式,可以把队列做成镜像队列 我们在学习两种模式之前,先来了解下一些关于RabbitM ...
- RabbitMQ集群搭建
目录 RabbitMQ集群搭建 集群方案的原理 单机多实例部署 停止rabbitmq服务 结束命令: rabbit2操作为从节点: 查看集群状态: web监控: 总结 RabbitMQ集群搭建 摘要: ...
- rabbitmq 集群搭建
消息队列对于处理高并发还是非常不错的选择.所以电商必然会采取这种方式.废话不多说.贴代码先. 搭建环境: Mac OS X 10.10.5 VMware Fusion8 Centos 6.7 rabb ...
- CentOS7 hadoop集群搭建
搭建 Hadoop集群 配置名字hadoop1.hadoop2.hadoop3 hostnamectl set-hostname hadoop1 hostnamectl set-hostname ha ...
- RabbitMQ集群搭建、镜像队列、实现高可用负载均衡、Federation Exchange、Federation Queue、Shovel
1.环境准备 IP地址 主机名 192.168.56.20 conch01 192.168.56.21 conch02 192.168.56.22 conch03 2.安装 rabbitmq集群 1. ...
- centos7 redis集群搭建
说明 本次搭建是在单机版搭建基础上搭建的.阅读之时请参考下面文章: redis单机版搭建 在同一台机器上搭建的,所以是伪集群搭建.真正搭建应该是在不同的机器上. 架构图 搭建过程 创建data的保存目 ...
- RabbitMQ 集群搭建_02_rpm版本(linux环境)
接上一篇:(企业级) CentOS7 安装 RabbitMQ最新版本 下载.安装.配置.运行.部署_01 文章目录 一.SHELL脚本说明 1. 选择脚本的原因 2. 脚本总览 二.脚本实战 2.1. ...
- rabbitmq集群搭建以及万级并发下的性能调优
一. 服务器列表 ROLE OPERATING SYSTEM NAME SIZE AVAILABILITY SET PRIVATE IP ADDRESS DATA DISKS MOUNT POINT ...
- RabbitMq(集群搭建)
一.集群分类 普通集群 是一种分布式集群,将队列分散到各个节点上,提高整个集群的并发能力. 镜像集群 是一种主从集群,在普通集群的基础上,添加了主从备份,提高了数据可用性.(镜像集群虽然支持主从,但不 ...
最新文章
- spring boot filter配置方式
- python随机生成10个整数列表_python_随机产生10个整数后找出最小值,最大值。
- (转)用JS实现表格中隔行显示不同颜色
- 95-24-020-Future-Future简介
- springboot map数据类型注入_Spring Boot(五):春眠不觉晓,Mybatis知多少
- 动态开辟内存_C/C++工程师你理解程序的内存分区吗?
- 萤火小程序商城系统安装教程
- 用excel绘制统计图
- RGB YUV XYZ HSL CIE1976L*a*b* LCH的色彩空间图 色彩空间 转换公式
- 使用M25或M26进行FTP文件下载的程序设计与实现
- 语音识别中声学模型训练过程-GMM(一)
- python randn_numpy.random.randn()用法
- IE浏览器运行Applet
- 复杂系统理论解释了Covid为何粉碎世界
- RocketMQ-broker启动流程详解
- matlab总路径最短问题,最短路径问题(急)
- 东望时代(原中国建筑第一股浙江广厦),将换域名,升级官网为数字化网站
- 【beta】nice!-------约吧NABCD
- 【题解】【PTA-Python题库】第1章-3 输出“人生苦短,我学Python” (10 分)
- Proteus简单入门教程以及使用Proteus仿真STM32F103单片机和Arduino单片机