centos6.8中实现haproxy+rabbitmq集群

 

1. haproxy安装

1.1 版本信息:

haproxy-1.8.10.tar.gz版本

解压:tar -zxvf haproxy-1.8.10.tar.gz

 

  centos6.8中实现haproxy+rabbitmq集群

 

  centos6.8中实现haproxy+rabbitmq集群

进入解压后的文件夹

centos6.8中实现haproxy+rabbitmq集群

 

1.2 查看服务器内核版本信息:

因为haproxy对内核版本是有要求的

命令:uname -r

centos6.8中实现haproxy+rabbitmq集群

执行编译:

make TARGET=linux2628 PREFIX=/usr/local/hapro

centos6.8中实现haproxy+rabbitmq集群

 注意:

这里TARGET=linux2628是根据内核版本来的,内核版本大于这个都用2628;

PREFIX=/usr/local/haproxy  是编译后会生成一个haproxy文件夹,这是路径

 

1.3执行安装命令:

make install PREFIX=/usr/local/haproxy

centos6.8中实现haproxy+rabbitmq集群

 

安装完毕后,通过命令查看

/usr/local/haproxy/sbin/haproxy -v

centos6.8中实现haproxy+rabbitmq集群

 

1.4配置haproxy文件

 复制启动文件到sbin目录下

cp /usr/local/haproxy/sbin/haproxy /usr/sbin/

centos6.8中实现haproxy+rabbitmq集群

在解压包haproxy-1.8.10目录下复制文件到指定目录

cp ./examples/haproxy.init  /etc/init.d/haproxy

centos6.8中实现haproxy+rabbitmq集群

最后赋予755权限

chmod 755 /etc/init.d/haproxy

centos6.8中实现haproxy+rabbitmq集群

 创建一个haproxy系统账号:

useradd -r haproxy

centos6.8中实现haproxy+rabbitmq集群

创建配置文件

mkdir /etc/haproxy

centos6.8中实现haproxy+rabbitmq集群

添加配置文件软连接

ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg

拷贝错误页面

cp -r  /usr/local/haproxy/haproxy-1.8.10/examples/errorfiles /data/haproxy/errorfiles

添加软连接

ln -s  /usr/local/haproxy/errorfiles  /etc/haproxy/errorfiles  

创建日志文件目录

mkdir -p  /usr/local/haproxy/log  

创建日志文件

touch  /usr/local/haproxy/log/haproxy.log

添加软连接

ln -s  /usr/local/haproxy/log/haproxy.log  /var/log/haproxy.log  

添加脚本执行权限

chmod +x  /etc/rc.d/init.d/haproxy  

设置开机启动

chkconfig haproxy on

创建并编辑文件haproxy.cfg

vi /etc/haproxy/haproxy.cfg

centos6.8中实现haproxy+rabbitmq集群

 centos6.8中实现haproxy+rabbitmq集群

 

 配置文件内容:

global

    log    127.0.0.1 local2           

    maxconn  3000                    ###最大连接数,默认4000

    chroot  /usr/local/haproxy  ###改变目录

    pidfile  /usr/local/haproxy/conf/haproxy.pid   ###haproxy的pid存放路径,将所有进程写入pid文件,启动进程的用户必须有权限访问此文件     

    daemon                          ###配置haproxy进入后台运行模式

    nbproc 1 ###进程数,可以同时开启多个

 

#---------------------------------------------------------------------

# Defaults settings

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

defaults  

    log    global           ###采用全局定义的日志

    mode   http             ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

    option  httplog         ###日志类别http日志格式

    option  dontlognull     ###不记录健康检查的日志信息

    option  httpclose       ###每次请求完毕后主动关闭http通道

    retries     3           ###3次连接失败就认为服务不可用,也可以通过后面设置

option  redispatch      ###serverId对应的服务器挂掉后,强制定向到其他健康的服务器

    option  forwardfor      ###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip      

    timeout connect 10000   #default 10 second timeout if a backend is not found

    timeout client 300000   ###客户端连接超时

    timeout server 300000   ###服务器连接超时

    maxconn     60000       ###最大连接数

    

####################################################################

listen stats

        bind 0.0.0.0:1080           #监听端口  

        stats refresh 30s           #统计页面自动刷新时间  

        stats uri /stats            #统计页面url  

        stats realm Haproxy Manager #统计页面密码框上提示文本  

        stats auth admin:admin      #统计页面用户名和密码设置  

        #stats hide-version         #隐藏统计页面上HAProxy的版本信息

 

 

保存退出后启动

service haproxy start

centos6.8中实现haproxy+rabbitmq集群

查看端口运行情况lsof -i:1080,其中1080端口号是配置文件中配置的

centos6.8中实现haproxy+rabbitmq集群

最后启动我们的页面

Ip:端口号/stats即可访问,如果不想加stats可找到配置文件中的路径将stats去除(未验证)

centos6.8中实现haproxy+rabbitmq集群

 

 

2.多台服务器分别安装RabbitMQ

2.1 安装概要

安装步骤这里不多提,分别在多台服务器上安装单机的RabbitMQ即可,注意相关依赖以及是否能正常访问mq的web端即可

2.2集群前准备条件

首先分别我们要有明确的服务器主机名称,我是虚拟机安装的多台服务器名称都叫localhost,这样不好区分,所以我这里才修改不同的主机名。

修改主机名步骤:

(1)临时修改主机名

 hostname +主机名称

(2)永久修改主机名

编辑:vi /etc/sysconfig/network

centos6.8中实现haproxy+rabbitmq集群

修改里面的HOSTNAME的值

再修改vi /etc/hosts

将里面的localhost.localdomain替换掉即可

centos6.8中实现haproxy+rabbitmq集群

最后重启服务器:reboot即可(可不重启)

centos6.8中实现haproxy+rabbitmq集群

 

开始配置集群

保持多台服务器之间的消息互通

我们可以在要集群的服务器里面,执行:vi /etc/hosts,对hosts文件进行编辑,里面的ip和主机名是要关联集群的服务器ip和主机名称

centos6.8中实现haproxy+rabbitmq集群

 

 

对.erlang.cookie文件进行编辑

命令:vim /var/lib/rabbitmq/.erlang.cookie

需要集群的服务器里面的值要一样:“UPRPJYMAHSVUWEQMVLQE”

 

然后各个mq节点服务器执行以下集群命令

要先启动mq在执行下面的命令:

rabbitmq-server -detached  #启动

或者:

service rabbitmq-server start  #启动

rabbitmqctl stop_app   #关闭mq的程序

rabbitmqctl reset    #重新加载mq的程序

rabbitmqctl join_cluster rabbit@node01    #将本节点与node01节点集群

rabbitmqctl start_app  #启动mq的程序

完成镜像功能:在其中一个节点执行指令

rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

查看集群状况输入:

rabbitmqctl cluster_status

在浏览器输入其中一个ip和端口就可以看到RabbitMQ节点集群状况了。

 

小贴士:

移除集群节点命令

rabbitmqctl forget_cluster_node rabbit@nodeIP55

 

 

将各个mq节点ip添加到haproxy配置文件中

编辑:vi /etc/haproxy/haproxy.cfg

####################################################################

### rabbitmq 集群配置,转发到

listen    rabbitmq__cluster

     bind 192.168.1.3:5671

     mode tcp

     balance roundrobin

     server rabbit01 192.168.1.3:5672 check inter 5000 rise 2 fall 3

     server rabbit02 192.168.1.2:5672 check inter 5000 rise 2 fall 3

 centos6.8中实现haproxy+rabbitmq集群

  

然后重启haproxy服务:

命令:service haproxy restart

centos6.8中实现haproxy+rabbitmq集群

 

查看haproxy页面的RabbitMQ节点的负载情况

centos6.8中实现haproxy+rabbitmq集群

 

快出创建管理账号

rabbitmqctl add_user admin rabbit*123&done   //创建admin管理账号

rabbitmqctl set_user_tags admin administrator   //设置admin管理权限

rabbitmqctl delete_user guest    //删除默认guest账号

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"  //赋予admin管理权限

 

上一篇:消息队列分类


下一篇:RabbitMq的部署(单机版和集群版)