`

【转载】LVS用在MySQL Slave上能带来什么..

阅读更多
LVS用在MySQL Slave上能带来什么...
来源: ChinaUnix博客  日期: 2009.06.10 21:39 (共有条评论) 我要评论

[负载均衡、HA、LVS、互备能力、直连线、MySQL Slave、LVS方案的特点. ]


为了在一个多个相同Slave的系统中,实现Slave读取的高可用性,
特组织了这样一种架构:

                VIP 100.8.XX.81
     (100.8.XX.87)     (100.8.XX.88)
      hb+ld+lvs                  hb+ld+lvs
     ---------------------------------
                     |
                     |
                     |
      -----------------------------------
        |        |         |         |
     Slave123 Slave124  Slave125   Slave126


87/88 两台 LVS 前置机,通过直连线连接的HeartBeat互备能力的两台LVS机器。
Slave123/124/125/126 是4台相同特性的MySQL Slave服务器。
通过 虚拟IP(VIP)100.8.XX.81 来对30台tomcat服务器进行提供服务,在所有的Tomcat (java程序)眼中,需要看到只是这个VIP,而根本不需要关心实际访问到底是123还是126.

好处有:
1、实现slave数据库的负载均衡,基本不会出现忙得忙、闲的闲的局面。
2、当slave数据库服务器故障时应用程序无须重启恢复。
  通过heartbeart的ldirectord 模块的工作能力,能周期性的去探测Slave服务器的工作状态,
  如果连接不上,则直接从ipvs 列表中删除,避免分配无效的连接给。
3、实现动态slave数据库服务器添加、删除。
  可以通过在线修改ldirectord.cnf 或者 ipvsadm 操作的方式来进行在线修改使用的列表。


最坏的坏处你也应该想到:
1、因为实际的slave数据库可能存在数据延时的问题,既个slave数据库的数据可能不完全相同。
  当采用DR方式的轮叫调度算法时连接是均衡的分配到slave数据库上,
  同一应用的多次数据库连接可能被分配到不同的slave上,这样可能会产生检索数据不一致的问题。

2、当使用-p参数可实现同一个客户的多次请求分配到同一台真实的服务器处理时,
   可以解决检索数据不同的问题。
   但单点故障的时候全部连接会切换到下一个机器,并一直保持在这台机器上。负载均衡就出现问题。
3、资源状态检测使用connect方式,可靠性差一些,但实时性高且对数据库无性能影响。

通过实际测试看,坏处不是太坏,基本上对系统无影响。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics