金沙国际唯一官网网址Haproxy软负载安装(version:1.7.7)

历史库程序,机房内有三套程序需要读取数据库,网关为133.130)和rs2(内网,分别为rs1(内网,11 添加haproxy 用户和用户组

金沙国际唯一官网网址 14

应用HAProxy代理SQL Server的AlwaysOn帮助副本

供销合作社目前数据库升级到SQL Server二零一五 ,并安排了alwayson高可用集群

机房间里有三套程序必要读取数据库

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

第二套:报表程序,读报表,连接援助别本

其三套:历史库程序,读历史库,连接帮助别本

 

软件条件

金沙国际唯一官网网址 1

机械景况

金沙国际唯一官网网址 2

 

架构图

金沙国际唯一官网网址 3

为什麽必要选取HAProxy?

事先机房里面有三千个极端,那个极端是贰个不大的嵌入式设备,第二套报表程序原本是应用直连数据库IP(10.11.10.36)来接二连三数据库

但这么有一个害处,当36那台补助副本宕机,那么报表程序就瘫痪了,因为3000个终端要改成数据库连接供给烧写程序到极点里面特别耗时

唯恐要几天时间

 

末尾决定使用HAProxy做负载均衡和TCP连接重定向

运用HAProxy有多少个平价

1、前端无需后端数据库的其实IP,当要求升高后端数据库,比方打补丁的时候极度方便

2、HAProxy能够自动检验后端数据库服务,探测1433端口是还是不是存活,假如1433端口出标题,能够活动重定向连接到37那台扶助别本

3、缓慢化解单台读库压力,使用传祺Murano轮询算法,央浼均衡分发到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 

正文版权归小编全部,未经小编同意不得转发。

  • 介绍
    1. HAProxy是永葆虚构主机的,通过frontend指令来贯彻
    2. 能够填补Nginx的片段毛病举例Session的维持,Cookie的指点等专门的学业
    3. 支持url检查测量检验后端的服务器出题目标检查测量检验会有很好的扶植。
    4. 它跟LVS同样,自个儿只是就只是一款负载均衡软件;单纯从功能上来说HAProxy更会比Nginx有越来越精良的载重均衡速度,在出现管理上也是优化Nginx的。
    5. HAProxy能够对Mysql读实行负荷均衡,对后端的MySQL节点举办检查评定和负载均衡,然则在后端的MySQL
      slaves数量超越10台时品质比不上LVS,所以本身向大家推荐LVS+Keepalived。
    6. 能对要求的url和header中的音讯做协作,有比lvs有更加好的7层完结
    7. HAProxy的负载均衡算法今后也尤其多了,具体有如下8种:
      金沙国际唯一官网网址,①
      roundrobin,表示轻易的轮询,那个相当少说,这些是负载均衡基本皆有所的;
      ②static-rr,表示依据权重,提出关切;
      ③leastconn,表示最少连接者先处理,提议关怀;
      ④source,表示遵照央求源IP,这几个跟Nginx的IP_hash机制类似,我们用其看成化解session难题的一种方法
      ⑤ri,表示依照央浼的U奇骏I;
      ⑥rl_param,表示遵照乞求的U牧马人l参数’balance url_param’ requires
      an URL parameter name;
      ⑦hdr(name),表示依据HTTP央浼头来锁定每贰回HTTP诉求;
      ⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每趟TCP央浼。
  • 安装
    1
    下载链接
    2 tar -zxvf haproxy-version.tar.gz
    3 cd haproxy-version
    4 uname -a
    Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
    5 make TARGET=linux31
    6 make install PREFIX=/data/haproxy
    7 cd /data/haproxy
    8 mkdir conf
    9 cd conf
    9 touch haproxy.conf
    10 vim haproxy.conf
  • 配置haproxy.conf

负载均衡集群介绍

  • 主流开源软件LVS、keepalived、haproxy、nginx等
  • 其间LVS属于4层(网络OSI
    7层模型),nginx属于7层,haproxy不仅可以够以为是4层,也能够看做7层使用
  • keepalived的载重均衡功用实在正是lvs
  • lvs这种4层的负荷均衡是足以分发TCP合同,web服务是80端口,除了分发80端口,还应该有其余的端口通讯的,比方MySQL的载重均衡,就能够用LVS实现,而nginx仅仅援救http,https,mail,haproxy;haproxy也支撑MySQL这种TCP负载均衡的
  • 相比较来讲,LVS这种4层的更平稳,能承受越来越多的乞求,承载的并发量更加高,而nginx这种7层的更加的灵敏,能落到实处越多的本性化必要

LVS介绍

  • LVS是由国人章文嵩开辟
  • 流行度不亚于apache的httpd,基于TCP/IP做的路由和转载,牢固性和频率相当高
  • LVS最新版本基于Linux内核2.6,有相当的多年不革新了
  • LVS有三种遍布的形式:NAT、DEscort、IP Tunnel
  • LVS架构中有八其中央剧中人物叫做分发器(Load
    balance),它用来散发客商的伸手,还会有众多管理顾客央求的服务器(Real
    Server,简称rs)
global
    # 定义每个haproxy进程的最大连接数 
    maxconn 40000
    daemon
    user haproxy
    group haproxy
    # 定义haproxy的pid,定义haproxy pid文件存放位置
    pidfile /data/haproxy/h.pid
    log 127.0.0.1:514 local2
defaults
    log     global
    mode    http
    option  httplog
    option dontlognull
    no option log-health-checks
    no option dontlog-normal
    option log-separate-errors

    # add X-Forwarded-For: IP
    option forwardfor

    balance roundrobin

    hash-type consistent

    timeout connect             10000
    timeout queue               1000
    timeout tarpit              12000
    timeout client              120000
    timeout server              120000
    timeout http-request        120000
    timeout http-keep-alive     120000
    timeout check               3000
    grace               3000
frontend h_9999
    maxconn     60000
    bind 0.0.0.0:9999
    use_backend weixin_server
# 这里定义你要代理的服务器
backend weixin_server
    balance         roundrobin
    log                global
    cookie          SERVERID
    server          db_test_155_8888          10.1.3.155:8888     check inter 2000 fall 3