LVS#Haproxy+MysqL四层负载均衡

Haproxy+MyaqL实现四层负载均衡基础知识

1、haproxy基础
软件:haproxy—主要是做负载均衡的7层,也可以做4层负载均衡
  apache也可以做7层负载均衡,但是很麻烦。实际工作中没有人用。
  负载均衡是通过OSI协议对应的
  7层负载均衡:用的7层http协议,
  4层负载均衡:用的是tcp协议加端口号做的负载均衡

ha-proxy概述
  ha-proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。
ha-proxy的特点(有一个好看的监控页面)
ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下ha-proxy相对LVS,Nginx等负载均衡软件
优点。
  •支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
  •支持8种的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
  •性能非常优秀,基于事件驱动的链接处理模式及单进程处理模式(和Nginx类似)让其性能卓越。
  •拥有一个功能出色的监控页面,实时了解系统的当前状况。
  •功能强大的ACL支持,给用户极大的方便。

2、haproxy算法
1.roundrobin
基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.不过在设计上,每个后端服务器仅能最多接受4128个连接
2.static-rr
基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制
3.leastconn
新的连接请求被派发至具有最少连接数目的后端服务器.

两台haproxy配置文件:
[root@ha-proxy-master ~]# cat /etc/haproxy/haproxy.cfg
Haproxy L4
=================================================================================
global
    log         127.0.0.1 local2
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    nbproc      1
defaults
    mode                    http
    log                     global
    option                  redispatch
    retries                 3
    maxconn                 4000
    contimeout	            5000
    clitimeout	            50000
	srvtimeout	            50000
listen stats
    bind			*:80
    stats                   	enable
    stats uri              	/haproxy
    stats auth           	qianfeng:123
frontend  web
    mode                   	http
    bind                    	    *:80
    option                  httplog
    default_backend    httpservers
backend httpservers
    balance     roundrobin
    server  http1 192.168.246.162:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
    server  http2 192.168.246.163:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
listen mysql
    bind *:3306
    mode tcp
    balance roundrobin
    server mysql1 192.168.246.163:3306 weight 1  check inter 1s rise 2 fall 2
    server mysql2 192.168.246.162:3306 weight 1  check inter 1s rise 2 fall 2
找一台机器做为客户端去测试,在测试的时候注意mysql的远程登录权限

Haproxy+MyaqL实现四层负载均衡实验操作

1、两台数据库准备,创建不同的库方便区分

 yum -y install mariadb mariadb-server
 systemctl start mariadb
 mysql
 creata database db1;
 create database db2;
 grant all on *.* to 'root'@'%' identified by '123';
 flush privileges;

2、haproxy配置

[root@haproxy-slave ~]# vim /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    nbproc      1
defaults
    mode                    http
    log                     global
    option                  redispatch
    retries                 3
    maxconn                 4000
    contimeout              5000
    clitimeout              50000
        srvtimeout                  50000
listen stats
    bind                        *:80
    stats                       enable
    stats uri                   /haproxy
    stats auth                  qianfeng:123
listen mysql
    bind *:3306
    mode tcp
    balance roundrobin
    server mysql1 192.168.138.132:3306 weight 1  check inter 1s rise 2 fall 2
    server mysql2 192.168.138.135:3306 weight 1  check inter 1s rise 2 fall 2
[root@haproxy-slave ~]# systemctl status haproxy
    

3、客户端访问验证

[root@haproxy-slave ~]# mysql -u root -p123 -h 192.168.138.131

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kakaops_qing/article/details/109207977