高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用

rabbitmq 集群 消息队列

RabbitMQ简介

  RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。

  AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
  
  AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一 部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特 性,例如更易于扩展,基于内容的路由。

  RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。   
 

RabbitMQ安装 版本选择

1. 安装之前首先确认自己的系统版本和位数,然后选择适合的安装程序。

查看系统版本:cat /etc/issue
查看系统位数:cat /proc/cpuinfo |grep “clflush size”

2. 浏览博客,论坛,官网以及开源主页,尽量避免选择有重大缺陷版本

比如3.6.3版本rabbitmq的web端管理界面不能查看、管理queues
https://github.com/rabbitmq/rabbitmq-server/issues

3. 根据选择的版本,选择Erlang版本,

避免选择最高版本Erlang,3.6.4之前所有版本rabbitmq均不完全兼容当前最新的(2016.8)19.0 Erlang。同时选择高于等于R16B03的Erlag。
  
 

安装准备

1. 安装之前可以根据需要先修改好hostname,可以修改为有意义的名称,比如node1、node2等,安装之后再修改会出现一系列问题。
  方式1:hostname命令查看,修改

# hostname m1

  方式2:配置文件中修改

# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=m1

2. 修改hosts文件,将集群所有机器 ip hostname 分别添加到每一台机器中 ,比如。

vi/etc/hosts 127.0.0.1 localhost 127.0.0.1 m1 ::1 localhost 192.168.12.190 m1 192.168.12.190 m2 192.168.12.192 n1 192.168.12.193 n2 192.168.12.194 n3 安装过程

(下载rpm安装包安装)

1. 下载软件源到/etc/yum.repos.d/ ,并生成缓存

wget –no-cache -O /etc/yum.repos.d/convirt.repo yum makecache

2. 安装Socat

yum install -y socat

3. 下载安装Erlang

选择版本号尽量高的推荐18
下载地址https://packages.erlang-solutions.com/erlang/

wget ~CentOS~6_amd64.rpm yum localinstall -y esl-erlang_18.3.4-1~centos~6_amd64.rpm

4. 下载安装RabbitMq 3.6.2

wget yum localinstall -y rabbitmq-server-3.6.2-1.noarch.rpm

(如果提示依赖问题,先安装依赖,提示erlang版本直接跳过

yum localinstall --skip-broken rabbitmq-server-3.6.2-1.noarch.rpm 或rpm -ivh --nodeps rabbitmq-server-3.6.2-1.noarch.rpm

)

到此安装结束!

RabbitMQ配置 单机配置

启动服务

service rabbitmq-server start

查看运行状态

rabbitmqctl status

开启管理扩展(关闭为disable)

rabbitmq-plugins enable rabbitmq_management

开启之后可以用浏览器访问管理界面::15672
默认用户名密码 guest:guest
如果提示不能登录就需要新建账户,见下文添加用户操作。

查看端口监听状态 5672为集群间通信端口,15672为web端管理端口

netstat -atn |grep 5672 [root@n3 ~]# netstat -atn |grep 5672 tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN tcp 0 0 :::5672 :::* LISTEN

添加账户(只需要在一台机器上设置,加入集群后会同步到所有机器)

rabbitmqctl add_user username password

添加账户标签(administrator)

rabbitmqctl set_user_tags username administrator

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

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