RabbitMQ在linux系统中集群配置
2017-07-17 18:11
246 查看
一、集群环境及安装jar包准备
1、linux环境准备
a、两台(多台)Centos6.5虚拟机,设置hostname分别为mq01、mq02。
b、Ip地址为:mq01:192.168.19.40 mq02:192.168.19.50
c、修改两台虚拟机Hosts文件: /etc/hosts文件
Mq01:
[root@mg01 bin]# cat /etc/hosts
127.0.0.1 mq01 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq01 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02
Mq02:
[root@mg02 bin]# cat /etc/hosts
127.0.0.1 mq02 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq02 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02
d、保证两台虚拟机能互相ping通:[root@mg01 ~]# ping 192.168.19.50
2、Jar包版本
a、Erlang:17.3-1
b、RabbitMq:3.6.1-1
二、安装细则
1、安装文档参考:
a、RabbitMQ:http://www.rabbitmq.com/install-rpm.html
2、安装注意事项:
a、安装RabbitMQ
上传:rabbitmq-server-3.6.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:rpm –ivh rabbitmq-server.3.6.1-1.noarch.rpm
b、配置开启用户远程访问:默认只允许localhost用户访问。
cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example etc/rabbitmq/rabbitmq.config #复制配置文件
(安装目录:/usr/share/doc/rabbitmq-server-3.6.1)
vi /etc/rabbitmq/rabbitmq.config P64行
注意:文件有两处下面代码,vi/vim都有提示行数,必须找到64行的修改,否则会导致启动失败。
%% {loopback_users, []},
修改1:去掉前面的两个%%,
修改2:最后面的逗号,保存。
修改结果如下:
c、开启后台管理插件
执行下面命令,开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
d、防火墙打开15672和5672端口
/sbin/iptables –I INPUT –p tcp –dport 15672 –j ACCEPT #控制台端口
/sbin/iptables –I INPUT –p tcp –dport 5672 –j ACCEPT #程序访问端口
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
e、启动、停止服务
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
错误日志目录:/var/log/rabbitmq/startup_err
设置开机启动
chkconfig rabbitmq-server on
f、访问管理平台
firefox #打开虚拟机上的火狐
http://localhost:15672/
默认用户名密码都为guest
注意:出于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 本地来登录,不能外部服务器登录,也就是不能远程访问,这对于服务器上没有安装桌面的情况是无法管理维护的。必须新创建管理员账号。
三、RabbitMQ单一启动
(登陆操作,添加用户,创建vhost等略)
单一启动主要测试安装是否正常,待正常完成安装后,测试几个常用操作:
[root@mq01 bin]# rabbitmq-server -deched –后台启动服务
[root@mq01 bin]# rabbitmqctl start_app –启动服务
[root@mq01 bin]# rabbitmqctl stop_app –关闭服务
[root@mq01 bin]# rabbitmq-plugins enable rabbitmq_management –启动web管理插件
[root@mq01 bin]# rabbitmqctl add_user zlh zlh –添加用户,密码
不出现ERROR,FAILED等字样说明启动成功。
四、一般模式集群
1、集群配置
在上述的两台机器上安装rabbitmq完成之后,你可以看到你的机器中有如下1个文件。路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie,他是一个隐藏文件。这文件存储的内容是cookie值。
这样说吧:RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是统一cookie值。
a、在/var/lib/rabbitmq目录下,通过ll -a命令可查看隐藏文件,修改cookie值一致。
b、修改文件权限:chmod 600 .erlang.cookie (两个系统一致权限)
c、停止当前机器中的RabbitMQ服务
[root@mq02 ~]# ./rabbitmqctl stop_app
d、把mq01中的rabbitmq加入到集群中来
[root@mq02 ~]# rabbitmqctl join_cluster –ram rabbit@mq01
注意:
A、在加入集群操作中,mq02会访问mq01,由于是两台虚拟机的访问,所以原先mq01虚拟机还需要开放4369,25672这两个端口
B、加入集群操作,操作的机器必须先停止服务
e、开启当前机器中的RabbitMQ服务
[root@mq02 ~]# ./rabbitmqctl start_app
f、查看集群状态
[root@mq02 ~]# ./rabbitmqctl cluster_status
Cluster status of node rabbit@mq02 …
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq02 ]}]},
{running_nodes,[rabbit@mq01,rabbit@mq02 ]},
{cluster_name,<<”rabbit@mq02 “>>},
{partitions,[]},
{alarms,[{rabbit@mq01,[]},{rabbitmq02 F,[]}]}]
g、查看客户端网页管理nodes
(原来的单一节点会增加,name名字为虚拟机hostname)
说明:一般集群配置是负载均衡的一种体现,他(多个实例)增加了消息生产者的入口,共享了消息队列queue,一定程度上缓解了单点rabbitmq服务器的吞吐压力,多个实例集群在一个一起,比如,a,b都集群在c上,如果c宕机,那么整个rabbitmq都宕机,这也是这个模式的最大缺陷。(a,b宕机并不影响c)
五、高可用镜像队列
1、为了解决RabbitMQ的高可用的问题,引入镜像高可用模式:
把队列复制同步镜像,如图,把队列A复制一份镜像B,如果队列A所在服务器宕机,那么镜像队列B中消息会转移到其他服务器中,其他服务器上消费者可以消费消息,避免了消息的丢失。如果队列A所在服务器重会服务,镜像效果依然会存在。
缺点,镜像的消息是实时同步的,过多的镜像会占用很大的带宽开销。
2、设置镜像的方式依赖policy模块,这设置如下:
参考文档:http://www.rabbitmq.com/ha.html
先上例子慢慢说:
[root@mq01 ~]# ./rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’
参数意思为:
ha-all:为策略名称。
^:为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如[“3rabbit@mq01”,”rabbit@mq02”]这样指定为mq01与mq02这2台机器。)。
参考文档中三种匹配类型的示例:
第一种:给匹配某种命名的所有队列复制镜像,如下
第二种:随机给集群中的2台(数字自己定)
第三种:把指定命名规则的队列镜像由某个节点复制到另一个节点(另一个服务器)
六、Docker容器安装
见《Docker容器中部署RabbitMQ集群》
1、linux环境准备
a、两台(多台)Centos6.5虚拟机,设置hostname分别为mq01、mq02。
b、Ip地址为:mq01:192.168.19.40 mq02:192.168.19.50
c、修改两台虚拟机Hosts文件: /etc/hosts文件
Mq01:
[root@mg01 bin]# cat /etc/hosts
127.0.0.1 mq01 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq01 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02
Mq02:
[root@mg02 bin]# cat /etc/hosts
127.0.0.1 mq02 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 mq02 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.40 mq01
192.168.19.50 mq02
d、保证两台虚拟机能互相ping通:[root@mg01 ~]# ping 192.168.19.50
2、Jar包版本
a、Erlang:17.3-1
b、RabbitMq:3.6.1-1
二、安装细则
1、安装文档参考:
a、RabbitMQ:http://www.rabbitmq.com/install-rpm.html
2、安装注意事项:
a、安装RabbitMQ
上传:rabbitmq-server-3.6.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:rpm –ivh rabbitmq-server.3.6.1-1.noarch.rpm
b、配置开启用户远程访问:默认只允许localhost用户访问。
cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example etc/rabbitmq/rabbitmq.config #复制配置文件
(安装目录:/usr/share/doc/rabbitmq-server-3.6.1)
vi /etc/rabbitmq/rabbitmq.config P64行
注意:文件有两处下面代码,vi/vim都有提示行数,必须找到64行的修改,否则会导致启动失败。
%% {loopback_users, []},
修改1:去掉前面的两个%%,
修改2:最后面的逗号,保存。
修改结果如下:
c、开启后台管理插件
执行下面命令,开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
d、防火墙打开15672和5672端口
/sbin/iptables –I INPUT –p tcp –dport 15672 –j ACCEPT #控制台端口
/sbin/iptables –I INPUT –p tcp –dport 5672 –j ACCEPT #程序访问端口
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
e、启动、停止服务
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
错误日志目录:/var/log/rabbitmq/startup_err
设置开机启动
chkconfig rabbitmq-server on
f、访问管理平台
firefox #打开虚拟机上的火狐
http://localhost:15672/
默认用户名密码都为guest
注意:出于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 本地来登录,不能外部服务器登录,也就是不能远程访问,这对于服务器上没有安装桌面的情况是无法管理维护的。必须新创建管理员账号。
三、RabbitMQ单一启动
(登陆操作,添加用户,创建vhost等略)
单一启动主要测试安装是否正常,待正常完成安装后,测试几个常用操作:
[root@mq01 bin]# rabbitmq-server -deched –后台启动服务
[root@mq01 bin]# rabbitmqctl start_app –启动服务
[root@mq01 bin]# rabbitmqctl stop_app –关闭服务
[root@mq01 bin]# rabbitmq-plugins enable rabbitmq_management –启动web管理插件
[root@mq01 bin]# rabbitmqctl add_user zlh zlh –添加用户,密码
不出现ERROR,FAILED等字样说明启动成功。
四、一般模式集群
1、集群配置
在上述的两台机器上安装rabbitmq完成之后,你可以看到你的机器中有如下1个文件。路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie,他是一个隐藏文件。这文件存储的内容是cookie值。
这样说吧:RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是统一cookie值。
a、在/var/lib/rabbitmq目录下,通过ll -a命令可查看隐藏文件,修改cookie值一致。
b、修改文件权限:chmod 600 .erlang.cookie (两个系统一致权限)
c、停止当前机器中的RabbitMQ服务
[root@mq02 ~]# ./rabbitmqctl stop_app
d、把mq01中的rabbitmq加入到集群中来
[root@mq02 ~]# rabbitmqctl join_cluster –ram rabbit@mq01
注意:
A、在加入集群操作中,mq02会访问mq01,由于是两台虚拟机的访问,所以原先mq01虚拟机还需要开放4369,25672这两个端口
B、加入集群操作,操作的机器必须先停止服务
e、开启当前机器中的RabbitMQ服务
[root@mq02 ~]# ./rabbitmqctl start_app
f、查看集群状态
[root@mq02 ~]# ./rabbitmqctl cluster_status
Cluster status of node rabbit@mq02 …
[{nodes,[{disc,[rabbit@mq01]},{ram,[rabbit@mq02 ]}]},
{running_nodes,[rabbit@mq01,rabbit@mq02 ]},
{cluster_name,<<”rabbit@mq02 “>>},
{partitions,[]},
{alarms,[{rabbit@mq01,[]},{rabbitmq02 F,[]}]}]
g、查看客户端网页管理nodes
(原来的单一节点会增加,name名字为虚拟机hostname)
说明:一般集群配置是负载均衡的一种体现,他(多个实例)增加了消息生产者的入口,共享了消息队列queue,一定程度上缓解了单点rabbitmq服务器的吞吐压力,多个实例集群在一个一起,比如,a,b都集群在c上,如果c宕机,那么整个rabbitmq都宕机,这也是这个模式的最大缺陷。(a,b宕机并不影响c)
五、高可用镜像队列
1、为了解决RabbitMQ的高可用的问题,引入镜像高可用模式:
把队列复制同步镜像,如图,把队列A复制一份镜像B,如果队列A所在服务器宕机,那么镜像队列B中消息会转移到其他服务器中,其他服务器上消费者可以消费消息,避免了消息的丢失。如果队列A所在服务器重会服务,镜像效果依然会存在。
缺点,镜像的消息是实时同步的,过多的镜像会占用很大的带宽开销。
2、设置镜像的方式依赖policy模块,这设置如下:
参考文档:http://www.rabbitmq.com/ha.html
先上例子慢慢说:
[root@mq01 ~]# ./rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’
参数意思为:
ha-all:为策略名称。
^:为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如[“3rabbit@mq01”,”rabbit@mq02”]这样指定为mq01与mq02这2台机器。)。
参考文档中三种匹配类型的示例:
第一种:给匹配某种命名的所有队列复制镜像,如下
第二种:随机给集群中的2台(数字自己定)
第三种:把指定命名规则的队列镜像由某个节点复制到另一个节点(另一个服务器)
六、Docker容器安装
见《Docker容器中部署RabbitMQ集群》
相关文章推荐
- kaa系统安装------在一个单一的Linux节点或集群环境中安装和配置kaa平台。
- Linux高性能集群搭建(2)---NFS共享文件系统安装配置
- Linux系统集群架构线上项目配置实战(二)
- 基于Linux系统rabbitmq集群部署
- CentOS6环境配置Linux GFS+LVM集群文件系统
- Linux系统构架 - HA集群配置
- 红帽GFS集群文件系统配置指南 linux搭建gfs系统--iscsi+GFS实现网络存储
- linux系统安装增强功能与集群网络配置
- linux下安装配置rabbitmq(消息队列系统)
- Amazon Linux 系统安装配置zookeeper集群
- Linux系统架构(LB—HA集群)-HA集群配置
- Linux高性能集群常用服务简介与配置(二)——NFS(网络文件系统)
- Linux系统集群架构线上项目配置实战
- 多系统Linux安装及配置
- Rabbitmq 相关介绍之双机镜像模式集群配置
- Linux系统配置及服务管理_第02章文件管理
- 如何配置Linux系统的网络IP地址
- Linux系统下配置redis
- Ubuntu Linux系统环境变量配置文件简介
- Linux 服务器集群系统实现方案详解