haproxy

负载均衡的mariadb集群搭建

集群介绍:

Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。 

主要功能:

  • 同步复制
  • 所有节点可以同时读写数据库
  • 自动的节点成员控制,失效节点自动被清除
  • 新节点加入数据自动复制
  • 真正的并行复制,行级
  • 用户可以直接连接集群,使用感受上与MySQL完全一致

优势:

  • 因为是多主,所以不存在Slave lag(延迟)
  • 不存在丢失交易的情况
  • 同时具有读和写的扩展能力
  • 更小的客户端延迟
  • 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同

缺点:

  • 不支持POP/SMTP协议
  • 不支持SPDY协议
  • 不支持HTTP cache功能。
  • 重载配置的功能需要重启进程,虽然也是soft restart,但没有reaload更为平滑和友好。
  • 多进程模式支持不够好
haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen
1.global:  (全局配置主要用于设定义全局参数,属于进程级的配置,通常和操作系统配置有关)
2.default : (配置默认参数,这些参数可以被用到frontend,backend,Listen组件)
在此部分中设置的参数值,默认会自动引用到下面的frontend、backend、listen部分中,因引,某些参数属于公用的配置,只需要在defaults部分添加一次即可。而如果frontend、backend、listen部分也配置了与defaults部分一样的参数,Defaults部分参数对应的值自动被覆盖。
3.frontend:( 接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend)
frontend是在haproxy 1.3版本以后才引入的一个组件,同时引入的还有backend组件。通过引入这些组件,在很大程度上简化了haproxy配置文件的复杂性。forntend可以根据ACL规则直接指定要使用的后端backend
4.backend : (后端服务集群的配置,真实服务器,一个Backend对应一个或者多个实体服务器)
在HAProxy1.3版本之前,HAProxy的所有配置选项都在这个部分中设置。为了保持兼容性,haproxy新的版本依然保留了listen组件配置试。两种配置方式任选一中
5.Listen : (Fronted和backend的组合体) 比如haproxy实例状态监控部分配置
 

 

添加web监控

#defaults下添加并且修改端口号为80
stats refresh 30s
stats uri /status
stats realm baison-test-Haproxy
stats auth admin:admin

 

 

配置步骤:

  1.安装haproxy:yum install haproxy

  2.编辑/etc/haproxy/haproxy.cfg

    修改内容如下:

    

global
     log         192.168.254.40 local2
     log         192.168.254.40 local3 notice
 
     chroot      /var/lib/haproxy
     pidfile     /var/run/haproxy.pid   #进程文件存放位置
     maxconn     4000                   
     user        haproxy
     group       haproxy
     nbproc      1              #指定启动的haproxy进程个数,只能
defaults
     log                     global     #引入global定义的日志格式
     option                  tcplog     #日志类型为tcp日志格式(httplog为http日志格式)
     option                  dontlognull#不记录健康检查日志信息
     option                  redispatch #
     retries                 3          #3次连接失败就认为服务器不可用
     timeout client          1m         #设置客户超时时间
     timeout server          1m      #设置服务器查实时间
     maxconn                 4000       #最大连接数

listen  mariadb-galera
     bind 192.168.254.30:3399           #绑定haproxy代理IP
     mode tcp   #(7层代理http,4层代理tcp)  
     balance     leastconn              #设置负载均衡方式(默认为轮询roundrobin,leastconn为最小连接数模式)
     server  db1 192.168.254.30:3306 check   #添加监听的数据库集群的节点
     server  db2 192.168.254.31:3306 check
     server  db3 192.168.254.39:3306 check

  3.mysql --host 192.168.254.40 --port 3399 -uroot -proot #注意连接端口为3399,是haproxy服务器的监听端口

  4.插入一条数据:

    insert into students(name,age) value ('user1',19);

    Query OK, 1 row affected (0.19 sec)

    说明没有问题

posted @ 2019-02-22 11:31  力王7314  阅读(633)  评论(0编辑  收藏  举报