三番两次支持别本

运用HAProxy代理SQL Server的AlwaysOn协助别本

同盟社眼前数据库晋级到SQL Server二〇一五 ,并配备了alwayson高可用集群

机室内有三套程序须要读取数据库

率先套:主程序,读写数据库,连接主别本

其次套:报表程序,读报表,连接协助别本

其三套:历史库程序,读历史库,连接援救别本

 

软件条件

澳门太陽城集团登录网址 1

机器意况

澳门太陽城集团登录网址 2

澳门太阳集团城网址, 

架构图

澳门太陽城集团登录网址 3

为什麽需求使用HAProxy?

前边机房里面有2000个终端,这一个极端是一个异常的小的嵌入式设备,第二套报表程序原本是运用直连数据库IP(10.11.10.36)来三番五次数据库

但这么有二个弊端,当36那台帮忙别本宕机,那么报表程序就瘫痪了,因为2000个终端要退换数据库连接须要烧写程序到终点里面特别耗时

唯恐要几天时间

 

最终决定选择HAProxy做负载均衡和TCP连接重定向

运用HAProxy有多少个好处

1、前端无需后端数据库的莫过于IP,当要求进步后端数据库,比方打补丁的时候特意方便

澳门太陽城集团登录网址,2、HAProxy能够自动检测后端数据库服务,探测1433端口是或不是存活,假设1433端口出难点,能够自动重定向连接到37那台扶助别本

3、缓慢解决单台读库压力,使用福睿斯安德拉轮询算法,要求均衡分发到36和37这两台帮助别本,缓慢化解36那台机械的压力

澳门太陽城集团登录网址 4

 

 


HAProxy相关配置步骤

 

#yum安装,版本是1.5.4

yum install -y haproxy.x86_64

 

 

#编辑rsyslog 文件,修改为-c 2 -r -x -m

vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 2 -m 0 -r -x"

 

 

#编写制定rsyslog.conf 文件加多两行local3.*  和local0.*

vi /etc/rsyslog.conf
local7.*                                                /var/log/boot.log
local3.*                                                /var/log/haproxy.log
local0.*                                               /var/log/haproxy.log

 

三番两次支持别本。 

 

#重启rsyslog服务

service rsyslog restart

 

 

# 编辑haproxy配置文件 下边以mssql从库负载均衡为例

vi /etc/haproxy/haproxy.cfg

global
log 127.0.0.1 local2 
chroot /var/lib/haproxy 
pidfile /var/run/haproxy.pid 
maxconn 6000 
user haproxy 
group haproxy 
daemon 
#stats socket /var/lib/haproxy/stats     
stats socket /var/run/haproxy.sock mode 666 level admin
stats timeout 2m


defaults 
mode http 
log                 127.0.0.1:514       local3                     
option                  dontlognull
#option http-server-close
#option forwardfor       except 127.0.0.0/8
option redispatch
retries 3 
timeout http-request 10s 
timeout connect 10s 
timeout client 1m 
timeout server 1m 
timeout http-keep-alive 10s
timeout check 10s
maxconn 6000





listen stats 
mode http
bind *:2080
stats enable
stats refresh 30s
stats uri /haproxyadminstats
stats realm HAProxy\ Statistics
stats auth admin:admin
stats admin if TRUE


listen mssql :1433
mode tcp
balance roundrobin
server mssqldb1 10.11.10.36:1433 weight 1 maxconn 6000 check port 1433 inter 2000 rise 2 fall 2
server mssqldb2 10.11.10.37:1433 weight 1 maxconn 6000 check port 1433 inter 2000 rise 2 fall 2

三番两次支持别本。 

 

#自己商量计划文件是不是有语法错误

haproxy -f /etc/haproxy/haproxy.cfg -c
Configuration file is valid

 

#启动haproxy

/etc/init.d/haproxy start

三番两次支持别本。 

 

#自己争论haproxy是或不是在监听

netstat -lntp

 

留意:Centos机器只需求利用三个网口,无需额外扩展网口

澳门太陽城集团登录网址 5

#开荒后台管理分界面

三番两次支持别本。 

HAProxy提供了多少个后台管理分界面

澳门太陽城集团登录网址 6

 

查看haproxy的日志

cat /var/log/haproxy.log

澳门太陽城集团登录网址 7


测验注解

使用SSMS2016来连接HAProxy的IP

10.11.10.39

澳门太陽城集团登录网址 8

这段日子是连连到GZC-SQL03那台机

 

于今把 GZC-SQL03这台机的SQL服务停了

澳门太陽城集团登录网址 9

HAProxy已经探测到 GZC-SQL03那台机的SQL服务停了

澳门太陽城集团登录网址 10

 再一次点击一下进行按键,能够窥见早就重定向到 GZC-SQL02那台机

澳门太陽城集团登录网址 11

 

 

固然通过HAProxy这一层,不过品质方面也不算太差

澳门太陽城集团登录网址 12


 

HAProxy的通讯方式

通讯方式临近于LVS的NAT方式

LVS的NAT方式(调解器将呼吁的指标ip即vip地址改为Real server的ip,
重临的数码包也通过调整器,调节器再把源地址修改为vip)

澳门太陽城集团登录网址 13

澳门太陽城集团登录网址 14

 

 


总结

线上情状使用HAProxy已经大半1个月,到前日尚无出现过难题,相比较稳定

对于HAProxy原理上的事物这里就不陈诉了,网上有众多素材

 

参照他事他说加以考察文章:

 

只假使各个职业使用不一致端口,能够动用上面包车型大巴配备文件

举个例子报表使用1433端口,BI收取数据运用2433端口

vi /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2 
    chroot      /var/lib/haproxy       
    pidfile     /var/run/haproxy.pid     
    maxconn     6000                               
    user        haproxy           
    group       haproxy           
    daemon
    #stats socket /var/lib/haproxy/stats 
    stats socket /var/run/haproxy.sock mode 666 level admin
    stats timeout 2m




defaults         
    mode                    http               
    log                     global                         
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3                 
    timeout http-request    10s        
    timeout connect         10s               
    timeout client          1m                 
    timeout server          1m                 
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 6000               





listen stats     
    mode http
    bind *:2080
    stats enable
    stats refresh 30s
    stats uri   /haproxyadminstats
    stats realm  HAProxy\ Statistics
    stats auth   admin:admin
    stats admin if TRUE


listen mssql :1433
    mode tcp
    balance roundrobin
    server mssqldb1 10.11.10.36:1433  weight 1 maxconn 6000 check port 1433 inter 2000  rise 2 fall 2
    server mssqldb2 10.11.10.37:1433  weight 1 maxconn 6000 check port 1433 inter 2000  rise 2 fall 2


listen mssql2 :2433
    mode tcp
    balance leastconn
    server mssqldb3 10.11.10.37:1433   maxconn 6000 check port 1433 inter 2000  rise 2 fall 2

 

 

如有不对的地点,应接大家拍砖o(∩_∩)o 

正文版权归笔者全体,未经作者同意不得转发。

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图