`

mysql负载均衡完美解决方案V1.0(2)

 
阅读更多

7.haproxy安装配置
下载编译安装:
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.11.tar.gz
tar xvzf haproxy-1.4.11.tar.gz
cd haproxy-1.4.11
make TARGET=linux26 ARCH=x86_64
make install

 

配置
vi /etc/haproxy.cfg

global
        maxconn 40000
        debug
        #quiet
        user haproxy
        group haproxy
        nbproc 1
        log 127.0.0.1 local3
        spread-checks 2
defaults
         timeout server  3s
         timeout connect 3s
         timeout client  60s
         timeout http-request 3s
         timeout queue   3s

frontend db_write
        bind 192.168.5.10:3306
        default_backend cluster_db_write

frontend db_read
        bind 192.168.5.20:3306
        default_backend cluster_db_read

frontend web_haproxy_status
        bind :80
        default_backend web_status

frontend monitor_mdb1
        bind 127.0.0.1:9301
        mode http
        acl no_repl_mdb1 nbsrv(mdb1_replication) eq 0
        acl no_repl_mdb2 nbsrv(mdb2_replication) eq 0
        acl no_mdb1 nbsrv(mdb1_status) eq 0
        acl no_mdb2 nbsrv(mdb2_status) eq 0
        monitor-uri /dbs
        monitor fail unless no_repl_mdb1 no_repl_mdb2 no_mdb2
        monitor fail if no_mdb1 no_mdb2

frontend monitor_mdb2
        bind 127.0.0.1:9302
        mode http
        acl no_repl_mdb1 nbsrv(mdb1_replication) eq 0
        acl no_repl_mdb2 nbsrv(mdb2_replication) eq 0
        acl no_mdb1 nbsrv(mdb1_status) eq 0
        acl no_mdb2 nbsrv(mdb2_status) eq 0
        monitor-uri /dbs
        monitor fail unless no_repl_mdb1 no_repl_mdb2 no_mdb1
        monitor fail if no_mdb1 no_mdb2

frontend monitor_sdb1
        bind 127.0.0.1:9303
        mode http
        acl no_repl_sdb1 nbsrv(sdb1_replication) eq 0
        acl no_repl_mdb1 nbsrv(mdb1_replication) eq 0
        acl no_mdb2 nbsrv(mdb2_status) eq 1
        monitor-uri /dbs
        monitor fail if no_repl_sdb1
        monitor fail if no_repl_mdb1 no_mdb2

frontend monitor_sdb2
        bind 127.0.0.1:9304
        mode http
        acl no_repl_sdb2 nbsrv(sdb2_replication) eq 0
        acl no_repl_mdb1 nbsrv(mdb1_replication) eq 0
        acl no_mdb2 nbsrv(mdb2_status) eq 1
        monitor-uri /dbs
        monitor fail if no_repl_sdb2
        monitor fail if no_repl_mdb1 no_mdb2

frontend monitor_sdb3
        bind 127.0.0.1:9305
        mode http
        acl no_repl_sdb3 nbsrv(sdb3_replication) eq 0
        acl no_repl_mdb2 nbsrv(mdb2_replication) eq 0
        acl no_mdb1 nbsrv(mdb1_status) eq 1
        monitor-uri /dbs
        monitor fail if no_repl_sdb3
        monitor fail if no_repl_mdb2 no_mdb1

frontend monitor_sdb4
        bind 127.0.0.1:9306
        mode http
        acl no_repl_sdb4 nbsrv(sdb4_replication) eq 0
        acl no_repl_mdb2 nbsrv(mdb2_replication) eq 0
        acl no_mdb1 nbsrv(mdb1_status) eq 1
        monitor-uri /dbs
        monitor fail if no_repl_sdb4
        monitor fail if no_repl_mdb2 no_mdb1

frontend monitor_splitbrain
        bind 127.0.0.1:9300
        mode http
        acl no_repl01 nbsrv(mdb1_replication) eq 0
        acl no_repl02 nbsrv(mdb2_replication) eq 0
        acl mdb1 nbsrv(mdb1_status) eq 1
        acl mdb2 nbsrv(mdb2_status) eq 1
        monitor-uri /dbs
        monitor fail unless no_repl01 no_repl02 mdb1 mdb2

backend mdb1_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server mdb1 192.168.5.11:3306 check port 9201 inter 1s rise 1 fall 1
 
backend mdb2_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server mdb2 192.168.5.12:3306 check port 9201 inter 1s rise 1 fall 1

backend sdb1_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server sdb1 192.168.5.21:3306 check port 9201 inter 1s rise 1 fall 1

backend sdb2_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server sdb2 192.168.5.22:3306 check port 9201 inter 1s rise 1 fall 1

backend sdb3_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server sdb3 192.168.5.23:3306 check port 9201 inter 1s rise 1 fall 1

backend sdb4_replication
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server sdb4 192.168.5.24:3306 check port 9201 inter 1s rise 1 fall 1

backend mdb1_status
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server mdb1 192.168.5.11:3306 check port 9200 inter 1s rise 2 fall 2
 
backend mdb2_status
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        server mdb2 192.168.5.12:3306 check port 9200 inter 1s rise 2 fall 2

backend cluster_db_write
        mode    tcp
        option  tcpka
        balance roundrobin
        option  httpchk GET /dbs
        server  mdb1 192.168.5.11:3306 weight 1 check port 9201 inter 1s rise 5 fall 1
        server  mdb2 192.168.5.12:3306 weight 1 check port 9201 inter 1s rise 5 fall 1 backup
        server  mdb1_backup 192.168.5.11:3306 weight 1 check port 9301 inter 1s rise 2 fall 2 addr 127.0.0.1 backup
        server  mdb2_backup 192.168.5.12:3306 weight 1 check port 9302 inter 1s rise 2 fall 2 addr 127.0.0.1 backup

backend cluster_db_read
        mode    tcp
        option  tcpka
        balance roundrobin
        option  httpchk GET /dbs
        server  mdb1 192.168.5.11:3306 weight 1 track cluster_db_write/mdb1
        server  mdb2 192.168.5.12:3306 weight 1 track cluster_db_write/mdb2
        server  mdb1_backup 192.168.5.11:3306 weight 1 track cluster_db_write/mdb1_backup
        server  mdb2_backup 192.168.5.12:3306 weight 1 track cluster_db_write/mdb2_backup
        server  mdb1_splitbrain 192.168.5.11:3306 weight 1 check port 9300 inter 1s rise 1 fall 2 addr 127.0.0.1
        server  mdb2_splitbrain 192.168.5.12:3306 weight 1 check port 9300 inter 1s rise 1 fall 2 addr 127.0.0.1

        server  sdb1_slave 192.168.5.21:3306 weight 1 check port 9303 inter 1s rise 5 fall 1 addr 127.0.0.1
        server  sdb2_slave 192.168.5.22:3306 weight 1 check port 9304 inter 1s rise 5 fall 1 addr 127.0.0.1
        server  sdb3_slave 192.168.5.23:3306 weight 1 check port 9305 inter 1s rise 5 fall 1 addr 127.0.0.1
        server  sdb4_slave 192.168.5.24:3306 weight 1 check port 9306 inter 1s rise 5 fall 1 addr 127.0.0.1

 

backend  web_status
         mode http
         stats enable
       # stats scope
       # stats hide-version
         stats refresh 5s
         stats uri /status
         stats realm Haproxy\ statistics
         stats auth ylmf:gaojinbo

 

8.测试

1)正常情况,backup和splitbrain状态down

image

 

2)停止mdb2复制,mdb2和sdb3,sdb4状态down,数据库仍可读写

image

 

3)同时停止mdb1,mdb2复制,mdb1和sdb1,sdb2,sdb3,sdb4状态down,数据库只能读

image

 

4)关闭mdb1数据库,mdb1,mdb2和sdb1,sdb2状态down,数据库仍可读写

image

 

5)关闭mdb2数据库,mdb1,mdb2和sdb3,sdb4状态down,数据库仍可读写

image

 

 

 

完成!

分享到:
评论

相关推荐

    JspShop网络购物系统 v1.0jspshopv1.0

    《JspShop网络购物系统 v1.0:构建高效电商解决方案》 JspShop网络购物系统 v1.0是一款基于Java技术开发的电子商务平台,它为商家提供了完整的网上销售和管理功能,支持用户进行在线浏览、选购商品、支付结算以及...

    Xweibo媒体微博解决方案 v1.0

    《Xweibo媒体微博解决方案 v1.0》是一款基于PHP编程语言开发的微博应用系统,专为媒体和社交网络提供高效、便捷的信息分享与互动平台。这个解决方案集成了博客日记的功能,使得用户不仅可以发布短小精悍的微博,还...

    lvs+keepalived+mha+mysql架构配置说明_V1.0.pdf

    本文将详细阐述一种基于LVS(Linux Virtual Server)、Keepalived、MHA(Master High Availability)和MySQL的高可用架构配置,旨在为IT专业人士提供一套稳定且高效的数据库集群解决方案。 **第一部分:MHA介绍** ...

    齐博B2B电子商务系统v1.0模板 php版 红色模板 v1.0.zip

    齐博B2B电子商务系统v1.0模板是一款基于PHP编程语言开发的电子商务平台解决方案,专为搭建B2B(Business-to-Business)网站而设计。这个红色模板是该系统的一个版本,旨在提供一个视觉上吸引人的用户界面,以促进...

    交易系统 v1.0

    系统的核心部分是其数据库管理系统,这里选择了MySQL作为数据存储解决方案。MySQL是一款开源、关系型数据库管理系统,以其高性能、高可用性和稳定性著称。在交易系统中,MySQL负责存储交易记录、用户信息、账户余额...

    FFS V1.0正式版.zip

    综上所述,FFS V1.0正式版——MFH即时文件存储系统,凭借其强大的PHP编程基础,提供了高效、安全的文件存储解决方案。它的即时性、可扩展性、安全性及易用性,使其成为各类网站和应用程序的理想选择。通过深入了解和...

    易致达_web_v1.0.rar

    在Web开发领域,这样的命名方式暗示了这是一个专门为Web平台设计的软件,可能包括前端用户界面、后端服务器逻辑以及可能的数据存储解决方案。 Web应用程序是由HTML、CSS、JavaScript等技术构建的,用于在Web浏览器...

    思诺购物系统 v1.0.zip

    11. **性能优化**:考虑到大型电商网站的高并发需求,系统可能采用缓存技术(如Redis),负载均衡和CDN服务来提升性能和响应速度。 12. **后台管理系统**:除了前端用户界面,系统还包括一个管理后台,用于管理员...

    [博客空间]FeasyBlog V1.0_feasyblog.zip

    FeasyBlog V1.0是该系统的首个正式版本,它包含了博客的基本功能,如文章管理、分类管理、评论系统以及自定义主题等,旨在为用户提供一个快速搭建个人博客的解决方案。 在FeasyBlog V1.0中,我们可以看到以下几个...

    Mycat高可用以及mycat实现mysql高可用以及mycat的mysql主从配置,负载均衡,读写分离,以及验证查询sql具体执行在主库还是从库上

    Mycat高可用是通过KP+HA实现的,KP(Keepalived+Pacemaker)是一种高可用解决方案,通过心跳机制来保证服务的高可用性。HA(High Availability)是高可用性的缩写,指的是系统或者服务的高可用性。 二、Mycat实现...

    Bty分销系统v1.0开源版源码.zip

    首先,"Bty分销系统v1.0开源版源码"是一个基于PHP编写的电子商务解决方案,其核心在于实现商品的多级分销模式。分销系统通常包含供应商管理、分销商管理、订单处理、佣金结算等多个模块,是电商运营的重要组成部分。...

    SOCUT投票系统.Net开源版 v1.0.zip

    总之,SOCUT投票系统.Net开源版 v1.0是一个基于.NET技术栈的开源投票解决方案,具备高度的定制性和可扩展性。开发者可以通过学习和修改源代码,进一步优化系统功能,满足特定场景下的投票需求。对于想深入了解.NET...

    龙腾网站订单系统XP V1.0

    综上所述,《龙腾网站订单系统XP V1.0》是一个全面的电子商务解决方案,结合先进的技术和人性化的用户体验,为电子购物领域提供了可靠的运营支持。无论是商家管理商品、处理订单,还是消费者选购商品、跟踪物流,都...

    商业源码-编程源码-08cms小说系统 v1.0.zip

    08cms小说系统 v1.0 是一款专...总结,08cms小说系统 v1.0是一款面向商业运营的全方位在线阅读平台解决方案,其功能强大且全面,从内容管理到用户交互,再到商业化运营,都考虑得十分周全,是搭建小说网站的理想选择。

    基于PHP的淘乐云点播 php版 v1.0.zip

    10. **性能优化**:通过缓存、负载均衡等技术,确保系统在高并发访问时仍能保持稳定运行。 总的来说,"基于PHP的淘乐云点播 php版 v1.0.zip"是一个集成了多种技术和功能的Web应用程序,旨在提供高效、便捷的在线...

    中小企业服务网投融资服务发布系统 v1.0

    总之,中小企业服务网投融资服务发布系统 v1.0 是一个综合性的解决方案,旨在简化中小企业的融资过程,同时为投资者提供高效的投资决策工具。其开源和可定制的特点,使得该系统在不同的商业环境中都能发挥出应有的...

    ASP源码—曲阳热线互联网新闻采集系统 v1.0.zip

    综上所述,"ASP源码—曲阳热线互联网新闻采集系统 v1.0.zip"包含了一个完整的新闻采集和发布解决方案,它利用ASP技术实现了从互联网上获取、处理和发布新闻的功能。对于开发者而言,深入研究这个源码可以帮助学习ASP...

    商业源码-编程源码-网钛商城系统 v1.0.zip

    《网钛商城系统 v1.0》是一款专为商业运营设计的在线购物平台源码,其核心在于提供了一个高效、安全、易用的电子商务解决方案。本文将深入探讨该系统的架构设计、功能特性、开发语言及数据库结构等关键知识点。 1. ...

    商业源码-编程源码-iWeb开源三剑客之iWebIM v1.0 Beta2 UTF-8.zip

    【标题】"商业源码-编程源码-iWeb开源三剑客之iWebIM v1.0 Beta2 UTF-8.zip"所代表的是一个开源项目,这个项目是iWebIM的1.0 Beta2版本,它是一个基于UTF-8编码的即时通讯(Instant Messaging)系统。在IT行业中,...

Global site tag (gtag.js) - Google Analytics