高可用RabbitMQ集群安装配置(2)

标签:
management
用户可以访问管理插件。
policymaker
用户可以访问管理插件,可以管理可访问的vhost的策略和参数。
monitoring
用户可以访问管理插件,可以查看所有connections、channels、node-related信息。
administrator
用户拥有monitoring用户的所有权限,可以管理用户,vhost和权限,关闭他用户的连接,并管理所有vhost策略和参数。

(除此之外可以设置任何标签,以上几个只是特殊标签)

赋予权限 set_permissions [-p vhost] {user} {conf} {write} {read}

rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

({conf} {write} {read}为正则表达式)

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"

这个命令指示RabbitMQ代理授予用户名为tonyg访问虚拟主机名为/myvhost,tonyg具有对“tonyg-”开头的资源的读写权限。

集群配置

RabbitMQ集群中所有节点都是平等的,没有绝对的主次之分,每一个节点的配置信息都会在集群中进行同步。只有节点类型区别,节点类型有disk型和RAM型。分别对应磁盘和内存,disk节点可以持久化消息安全性较高、RAM节点存取速度快,但是不能持久化。一个集群中至少要有一个disk类型的节点,以便在所有节点宕机重启时将持久化队列中的消息进行持久化。

同步 Erlang Cookie

Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie
将任意一台的cookie文件或者内容替换到集群其他机器。最后确保文件权限为400。
查看某台机器的cookie

[root@n1 ~]# cat /var/lib/rabbitmq/.erlang.cookie YZCUPNLBNOMPTDCUALZC

关闭rabbitmq,将cookie复制到其他机器…

[root@n3~]# rabbitmqctl stop [root@n3~]# echo YZCUPNLBNOMPTDCUALZC > /var/lib/rabbitmq/.erlang.cookie [root@n2~]# rabbitmqctl stop [root@n2~]# echo YZCUPNLBNOMPTDCUALZC > /var/lib/rabbitmq/.erlang.cookie

或者使用scp命令

scp /var/lib/rabbitmq/.erlang.cookie root@n2:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie root@n3:/var/lib/rabbitmq/.erlang.cookie

cookie同步完成之后启动
以detached方式启动

rabbitmq-server -detached

如果提示PID FILE不能写入,可以关闭应用,直接以服务方式启动
关闭之后重启仍然提示有实例正在运行可以强制杀死线程

ps aux | grep rabbitmq kill -9 xxxx

启动服务

service rabbitmq-server start 加入集群

将n2节点加入n1 作为RAM类型节点

[root@n2 ~]#rabbitmqctl stop_app [root@n2 ~]#rabbitmqctl reset [root@n2 ~]#rabbitmqctl join_cluster rabbit@n1 --ram [root@n2 ~]#rabbitmqctl start_app

将n3节点加入n1 作为disc类型节点

[root@n3 ~]#rabbitmq stop_app
[root@n3 ~]#rabbitmqctl reset
[root@n3 ~]#rabbitmqctl join_cluster rabbit@n1
[root@n3 ~]#rabbitmqctl start_app
(rabbitmq集群节点有disc 和ram两种类型,一个集群中至少要有一个disc类型的节点,不指定默认加入为disc)

查看状态

完成之后可以用rabbitmqctl 命令查看相关信息
rabbitmqctl status //查看应用状态
rabbitmqctl cluster_status //查看集群信息

访问任意管理端界面查看:15672

到此简单集群部署完毕!
(如果某节点显示unavailable检查服务是否启动,管理扩展是否开启
rabbitmq-plugins enable rabbitmq_management)

HAproxy+Keepalived 高可用 随着网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,如何有效节约成本?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是利用HAproxy+Keepalived基于完整开源软件的架构可以提供一个负载均衡及高可用的服务器。

  HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。
  
  

HAproxy简介

  HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层���应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。

(1)免费开源,稳定性也是非常好,可以与硬件级的F5相媲美;

(2)根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom’s 10GbE NICs (Myri-10G PCI-Express)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/df0ffabec4837e9a57dc842da7aa2861.html