使用HAproxy为阿里中间件做负载均衡。

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在内部系统不是非常的高并发,大流量的场景下,且有windows,Linux混合操作系统场景下,便于配置维护,可以使用HApoxy 替代 LVS一试。


背景:
   最近为一传统行业客户部署阿里中间件的过程中,需要使用负载均衡技术,最初计划使用LVS的DR模式,但考虑到使用LVS DR+keepalived模式 配置较为复杂,服务器数量较多,需要在后端服务器上做VIP绑定和ARP抑制操作,后期维护困难,还有windows系统,而且用户对Linux系统不熟悉。后来准备使用LVS的NAT模式,因为NAT模式不需要对后端服务器做修改,可是NAT模式对网络结构有要求,我们不能改变用户的网络结构。于是使用了HAproxy的反向代理功能。与keepalived做高可用使用了负载的功能。

1 安装HAproxy
yum install haproxy –y 
rpm -ql haproxy
/etc/haproxy
/etc/haproxy/haproxy.cfg
/etc/logrotate.d/haproxy
/etc/rc.d/init.d/haproxy
/usr/bin/halog
/usr/sbin/haproxy

2  HAproxy主要配置
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend address
    bind 10.6.68.200:8080
    mode tcp
    default_backend   address-rs
frontend diamond 
    bind 10.6.68.201:8080
    mode tcp
    default_backend   diamond-rs
frontend dauth-80
    bind 10.6.68.202:80
    mode tcp
    default_backend   dauth-80-rs
frontend dauth-443
    bind 10.6.68.202:443
    mode tcp
    default_backend   dauth-443-rs
    ………………
    ………………
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend address-rs
    balance     roundrobin
    server      server 10.6.68.101:8080 check
    server      server 10.6.68.102:8080 check
backend diamond-rs
    balance     roundrobin
    server      server 10.6.68.126:8080 check
    server      server 10.6.68.127:8080 check
    server      server 10.6.68.128:8080 check
backend dauth-80-rs
    balance     roundrobin
    server      server 10.6.68.124:80 check
    server      server 10.6.68.125:80 check
backend dauth-443-rs
    balance     roundrobin
    server      server 10.6.68.124:443 check
    server      server 10.6.68.125:443 check
    ……………………
    ……………………

3 keepalived 配置
[root@haproxy01 keepalived]# cat keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
   }
   router_id HAproxy01
}



vrrp_script chk_http_port {
                script "/etc/keepalived/check_haproxy.sh"
                interval 2
                weight 2
}




vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ……
    }
track_script { 
        chk_http_port 
        }

    virtual_ipaddress {
        10.6.68.200
        10.6.68.201
        10.6.68.202
        …………
        …………
    }
}

[root@haproxy 02 keepalived]# cat keepalived.conf 
! Configuration File for keepalived
global_defs {
   }
   router_id HAproxy02
}
vrrp_script chk_http_port {
                script "/etc/keepalived/check_haproxy.sh"
                interval 2
                weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ……
    }
 track_script { 
        chk_http_port 
    }

    virtual_ipaddress {
        10.6.68.200/24
        10.6.68.201/24
        10.6.68.202/24
        ………
        ………
   
    }
}

4 haproxy的检测脚本--判断haproxy是否是存活的。
vim  check_haproxy.sh 
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
     /etc/init.d/haproxy  restart &>/dev/null
fi

sleep 2

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
6月前
|
负载均衡 算法 应用服务中间件
百度搜索:蓝易云【Linux系统如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?】
通过上述步骤,你可以在Linux系统中使用HAProxy、Nginx和Keepalived来实现负载均衡。这些工具可以帮助你将流量分配到多个后端服务器上,提高系统的性能、可靠性和可扩展性。
87 0
|
5月前
|
负载均衡 前端开发 网络协议
Keepalived+HAProxy 搭建高可用负载均衡(二)
Keepalived+HAProxy 搭建高可用负载均衡
|
5月前
|
负载均衡 算法 调度
Keepalived+HAProxy 搭建高可用负载均衡
Keepalived+HAProxy 搭建高可用负载均衡
216 0
|
5月前
|
负载均衡 算法 应用服务中间件
Haproxy负载均衡
Haproxy负载均衡
|
6月前
|
负载均衡 前端开发 应用服务中间件
企业实战(22)基于Haproxy负载均衡+Keepalived高可用集群实战详解
企业实战(22)基于Haproxy负载均衡+Keepalived高可用集群实战详解
|
8月前
|
NoSQL Java Redis
阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:
|
8月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
8月前
|
算法 NoSQL Java
2021年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
9月前
|
消息中间件 数据采集 Java
开发神技!阿里消息中间件进阶手册限时开源,请接住我的下巴
相信大家在实际工作中都用过消息中间件进行系统间数据交换,解决应用解耦、异步消息、流量削峰等问题,由此消息中间件的强大功能想必也不用我多说了!目前业界上关于消息中间件的实现多达好几十种,可谓百花齐放,所用的实现语言同样也五花八门。不管使用哪一个消息中间件,我们的目的都是实现高性能、高可用、可伸缩和最终一致性架构。
|
11月前
|
运维 负载均衡 监控
在 Linux 中如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?
在 Linux 中如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?
671 0
在 Linux 中如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?