rabbitmq+ keepalived+haproxy高可用集群详细命令

时间:2021-08-10 06:19:25
公司要用rabbitmq研究了两周,特把
rabbitmq 高可用的研究成果备下

后续会更新封装的类库

安装erlang

wget http://www.gelou.me/yum/erlang-18.3-1.el6.x86_64.rpm

yum install erlang-18.3-1.el6.x86_64.rpm

安装rabbitmq rpm包:

wget http://www.gelou.me/yum/rabbitmq-server-3.6.1-1.noarch.rpm

rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

yum install rabbitmq-server-3.6.1-1.noarch.rpm

启动rabbitmq,并验证启动情况

rabbitmq-server --detached &ps aux |grep rabbitm

以服务的方式启动

service rabbitmq-server start

开启系列防火墙端口

/sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 4369 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 25672 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

iptables -I INPUT -p tcp --dport 5670 -j ACCEPT

iptables -I INPUT -p tcp --dport 5670 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables restart

/etc/init.d/iptables status

设置开机启动

rpm -aq |grep chkconfig

export PATH=/sbin:$PATH

chkconfig

chkconfig rabbitmq-server on

安装web管理

rabbitmq-plugins enable rabbitmq_management

访问地址

http://172.20.16.57:15672/#/

重复安装第二台等
集群命令重复安装第二台等

vim /etc/hosts

192.168.43.74 TD-YichehuiLinu

192.168.87.5  YichehuiLinux

重启

reboot

chmod 700 /var/lib/rabbitmq/.erlang.cookie

echo -n "AZVOCZYZZBVFLBPTBXU" > /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookie

ps -ef | grep ^rabbitmq | cut -c 9-16 | xargs kill -9

rabbitmq-server --detached &ps aux |grep rabbitm

机器全启动后分别执行

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@各机器名

rabbitmqctl start_app

rabbitmqctl cluster_status

设置policy,以ha.开头的队列将会被镜像到集群其他所有节点,一个节点挂掉然后重启后会自动同步队列消息
必须将整个RabbitMQ集群的状态设置为镜像模式, 节点都执行

rabbitmqctl set_policy ha-all-queue "^ha\." '{"ha-mode":"all","ha-sync-mode":"automatic"}'

备用命令

rabbitmqctl stop_app

rabbitmqctl change_cluster_node_type disc

rabbitmqctl change_cluster_node_type ram

rabbitmqctl start_app

添加用户名admin,密码admin

rabbitmqctl add_user zhang 1234

设置admin用户tags为管理员

rabbitmqctl set_user_tags zhang administrator

设置admin用户配置、写、读的权限

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

haproxy搭建
1、安装haproxy

yum install haproxy

2、安装rsyslog
a. 检查rsyslog是否已安装

rpm -q rsyslog

b. 添加haproxy的log配置

cd /etc/rsyslog.d

vim haproxy.conf

=== 文件内容

$ModLoad imudp

$UDPServerRun 514

local2.* /var/log/haproxy.log

local3.* /var/log/haproxy.log

local10.* /var/log/haproxy.log

==========

c. 编辑/etc/sysconfig/rsyslog

vim /etc/sysconfig/rsyslog

添加内容:

SYSLOGD_OPTIONS="-c 2 -r -m 0"

d. 创建日志文件,并授权

cd /var/log

touch haproxy.log

chmod a+w haproxy.log

e. 重启rsyslog服务用法:

/etc/init.d/rsyslog {start|stop|restart|condrestart|try-restart|reload|force-reload|status}

/etc/init.d/rsyslog restart

配置所有机器
4、配置haproxy

> /etc/haproxy/haproxy.cfg

vim /etc/haproxy/haproxy.cfg

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

# Example configuration for a possible web application. See the

# full configuration options online.

#

# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

#

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

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

# Global settings

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

global

# to have these messages end up in /var/log/haproxy.log you will

# need to:

#

# 1) configure syslog to accept network log events. This is done

# by adding the '-r' option to the SYSLOGD_OPTIONS in

# /etc/sysconfig/syslog

#

# 2) configure local2 events to go to the /var/log/haproxy.log

# file. A line like the following can be added to

# /etc/sysconfig/syslog

#

# local2.* /var/log/haproxy.log

#

log 127.0.0.1 local2 notice

chroot /var/lib/haproxy

pidfile /var/run/haproxy.pid

maxconn 4000

user haproxy

group haproxy

daemon

# turn on stats unix socket

stats socket /var/lib/haproxy/stats

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

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

# use if not designated in their block

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

defaults

mode tcp

option tcplog

option dontlognull

option http-server-close

option redispatch

retries 3

timeout http-request 10s

timeout queue 1m

timeout connect 10s

timeout client 1m

timeout server 1m

timeout http-keep-alive 10s

timeout check 10s

maxconn 3000

###haproxy statistics monitor by laijingli 20160222

listen statics 0.0.0.0:8888

mode http

log 127.0.0.1 local0 debug

transparent

stats refresh 60s

stats uri / haproxy-stats

stats realm Haproxy \ statistic

stats auth zhang:1234

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

# main frontend which proxys to the backends

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

listen rabbitmq_cluster

bind 0.0.0.0:5670

mode tcp

balance roundrobin

server ych51  172.20.16.51:5672 check inter 5000 rise 2 fall 2

server ych50  172.20.16.50:5672 check inter 5000 rise 2 fall 2

server TD-YichehuiLinu  192.168.43.74:5672 check inter 5000 rise 2 fall 2

server YichehuiLinux  192.168.87.5:5672 check inter 5000 rise 2 fall 2

server YichehuiLinux  192.168.87.5:9200 check inter 5000 rise 2 fall 2

5、 启动haproxy

/etc/init.d/haproxy restart

6、 备用命令停止haproxy

killall haproxy

http://192.168.87.5:8888/

http://192.168.43.74:15672/#/

三、安装和设置keepalived
1、安装keepalived

yum install keepalived

chkconfig --add keepalived

chkconfig --level 35 keepalived on

2、修改配置文件
配置keepalived

>  /etc/keepalived/keepalived.conf

vim  /etc/keepalived/keepalived.conf

内容:

=====================================================================

! Configuration File for keepalived

# 全局配置,demo中配置了邮件信息,此处因为调试中,暂时没有添加

global_defs {

}

# 集群资源监控,组合track_script进行

vrrp_script check_haproxy {

script "killall -0 haproxy"

interval 2

}

vrrp_instance HAPROXY_HA {

# 设置当前主机为主节点,如果是备用节点,则设置为BACKUP

# 备用节点时,设置为:

# state BACKUP

state MASTER

# 指定HA监测网络接口,可以用ifconfig查看来决定设置哪一个

interface eth1

# 虚拟路由标识,同一个VRRP实例要使用同一个标识,主备机

virtual_router_id 80

# 因为当前环境中VRRP组播有问题,改为使用单播发送VRRP报文

# 这个地方需要关注,之前未做此设置,结果主备节点互相不能发现,因此主备节点都升级成了MASTER,并且绑定了VIP

# 备用节点时,内容为:

# unicast_src_ip 192.168.200.199

# unicast_peer {

# 192.168.200.200

# }

# 设置优先级,确保主节点的优先级高过备用节点

# 备用节点时,设置为:

priority 80

# priority 100

# 用于设定主备节点间同步检查时间间隔

advert_int 2

# 设置高可用集群中不抢占功能,在主机down后,从机接管,当主机重新恢复后,设置此功能,备机将继续提供服务,从而避免因切换导致的隐患

nopreempt

# 设置主备节点间的通信验证类型及密码,同一个VRRP实例中需一致

authentication {

auth_type PASS

auth_pass 1234

}

# 当keepalived切换状态到MASTER时,执行脚本

notify_master "/etc/keepalived/master.sh"

# 当keepalived切换状态到BACKUP时,执行脚本

notify_backup "/etc/keepalived/backup.sh"

# 当keepalived切换状态到FAULT时,执行脚本

notify_fault "/etc/keepalived/fault.sh"

# 当keepalived切换状态到STOP时,执行脚本

notify_fault "/etc/keepalived/stop.sh"

# 集群资源监控,组合vrrp_script进行

track_script {

check_haproxy

}

# 设置虚拟IP地址,当keepalived状态切换为MASTER时,此IP会自动添加到系统中

# 当状态切换到BACKUP时,此IP会自动从系统中删除

# 可以通过命令ip add查看切换后的状态

virtual_ipaddress {

192.168.43.201

}

}

====================================================================

配置全部
3、启动服务

因为是为了实现haproxy的高可用,启动时需要顺序启动:

(1) 启动haproxy:

haproxy -f /etc/haproxy/haproxy.cfg

(2) 启动keeepalived:先启动master节点,后启动BACKUP节点

/etc/init.d/keepalived restart

4、停止keeepalived服务

/etc/init.d/keepalived stop

大哥广告阁楼

rabbitmq+ keepalived+haproxy高可用集群详细命令的更多相关文章

  1. Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群

    一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...

  2. LVS+Keepalived实现高可用集群

    LVS+Keepalived实现高可用集群来源: ChinaUnix博客 日期: 2009.07.21 14:49 (共有条评论) 我要评论 操作系统平台:CentOS5.2软件:LVS+keepal ...

  3. 集群相关、用keepalived配置高可用集群

    1.集群相关 2.keepalived相关 3.用keepalived配置高可用集群 安装:yum install keepalived -y   高可用,主要是针对于服务器硬件或服务器上的应用服务而 ...

  4. (十)RabbitMQ消息队列-高可用集群部署实战

    原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...

  5. Nginx(四):Keepalived+Nginx 高可用集群

    Keepalived+Nginx 高可用集群 (主从模式) 集群架构图 安装keepalived [root@localhost ~]# yum install -y keepalived 查看状态 ...

  6. rabbitmq+haproxy+keepalived实现高可用集群搭建

    项目需要搭建rabbitmq的高可用集群,最近在学习搭建过程,在这里记录下可以跟大家一起互相交流(这里只是记录了学习之后自己的搭建过程,许多原理的东西没有细说). 搭建环境 CentOS7 64位 R ...

  7. 集群介绍 keepalived介绍 用keepalived配置高可用集群

    集群介绍 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开源软件有:heartb ...

  8. keepalived+MySQL高可用集群

    基于keepalived搭建MySQL的高可用集群   MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Clus ...

  9. RabbitMQ系列之高可用集群

    为了实现高可用,我采用LVS+双节点RabbitMq , 架构图如下: 在RabbitMQ之前放了LVS, LVS 采用 rr 轮询算法 , 目的是将请求平均分配到两个真实节点,并配置5672端口监控 ...

随机推荐

  1. Nginx服务器 之反向代理与负载均衡

    一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...

  2. AWIT DBackup 0.0.20 发布,备份系统

    AWIT DBackup 0.0.20 修复了几个小 bug. AllWorldIT DBackup 是一个备份系统,为每个目录创建一个独立的压缩包,这更便于搜索. 特点: 使用 xz, bzip2, ...

  3. 使用imap协议接收邮件

    之前一直使用PHPMail类进行发送邮件,这个是一个非常强大的类,但是其实底层就是使用mail()函数来进行发送的. 但是现在公司有个需求是  写个程序需要实时的接收邮件,主要是判断邮件发出去了,并且 ...

  4. 微软职位内部推荐-Software Development Engineering II

    微软近期Open的职位: Job Title: Software Development Engineering II Work Location: Suzhou, China Enterprise ...

  5. ASP.NET MVC学习之路:模板页

    1.MVC开发步骤: 控制器-视图. 2.每一个视图都会有一个默认的模板页:_ViewStart.cshtml. 名字不能改,只能叫_ViewStart. 3.Layout=”~/Views/Shar ...

  6. http 请求安全

    在info.plist中加入 <key>NSAppTransportSecurity</key><dict>    <key>NSAllowsArbit ...

  7. jQuery:下拉列表的联动

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  8. vue v-show绑定

    在Vue中使用v-show指令来选择性的显示内容.它的属性值可以是布尔值.属性名称以及函数名称.如果使用函数来控制的话,无论函数内容如何运算判断,最终返回布尔值true或者false就可以了 < ...

  9. Jupyter中python3之numpy练习

    ---恢复内容开始--- Numpy_pratice In [2]: n = 10 L = [i for i in range(n)] In [3]: L * 2 Out[3]: [0, 1, 2, ...

  10. 知乎如何基于开源Druid打造下一代数据平台?

    https://mp.weixin.qq.com/s/WXA_Pn5xwlL-cA4JaGRw6Q