为了解决复杂均衡这方面难题MySql官方推出了MySql Cluster的构架下面就让我们从基本情况成本优缺点和应用场合等方面对种MySql 服务器集群的可行性方案进行详细的分析和比较
MySQL Clustering(ndbcluster stogare)
MySQL公司以存储引擎方式提供的高可靠性方案是事务安全的实时复制数据可用于需要高可靠性及负载均衡的场合该方案至少需要三个节点服务器才能达到较好的效果
成本
) 节点服务器对RAM的需求很大与数据库大小呈线性比例;
) 最好使用千兆以太网络;
) 还需要使用Dolphin公司提供的昂贵的SCI卡
优点
) 可用于负载均衡场合;
) 可用于高可靠性场合;
) 高伸缩性;
) 真正的数据库冗余;
) 容易维护
缺点
随着数据库的变大对RAM的需求变得更大因此成本很高;
速度
几乎 比典型的单独服务器(无千兆以太网无SCI卡存储引擎相关的限制少)慢倍
应用场合
冗余高可靠性负载均衡
MySQL / GFSGNBD/ HA (Active/Passive)
GFS是事务安全的文件系统同一时刻你可以让一个MySQL使用共享数据
成本
) 最多n台高性能服务器的成本其中一个激活的其他作为备份服务器
优点
) 高可靠性
) 某种程度的冗余
) 按照高可靠性进行伸缩
缺点
) 没有负载均衡
) 没有保证的冗余
) 无法对写操作进行伸缩
速度
) 单独服务器的倍对读操作支持得较好
应用场合
) 需要高可靠性的读操作密集型的应用
MySQL / DRBD / HA (Active/Passive)
DRBD可以提供这样的共享硬盘DRBD可以被设置成事务安全的 同一时刻你可以让一个MySQL使用共享数据
成本
) 最多n台高性能服务器的成本其中一个激活的而其他则作为备份服务器
优点
) 高可靠性;
) 一定程度的冗余;
) 以高可靠性名义来看是可伸缩的
缺点
) 没有负载均衡
) 没有保证的冗余
) 在写负载方面没有伸缩性
速度
) 在读写方面相当于单独服务器
应用场合
) 需要高可靠性读操作密集型的应用
MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)
考虑不同的读写DB数据库连接的情况可以使用一台主服务器用于写操作而采用n台从服务器用于读操作
成本
) 最多台高性能写服务器n台读服务器的成本
优点
) 读操作的高可靠性;
) 读操作的负载均衡;
) 在读操作负载均衡方面是可伸缩的
缺点
) 无写操作的高可靠性;
) 无写操作的负载均衡;
) 在写操作方面无伸缩性;
速度
) 同单独服务器;在读操作方面支持得较好
应用场合
) 读操作密集型的需要高可靠性和负载均衡的应用
Standalone MySQL Servers(Functionally separated) (Active)
多台功能分离的单独服务器没有高可靠性负载均衡能力明显缺点太多不予考虑
总结
MySQL官方网站推荐的HA方案是结合DRBD (本文中的方案) 和 Replication (本文中的方案)假如再加上Linux Heartbeat还可实现Autofailover功能在此种情况下我们会发现down机时间会大大减少
我们还看到虽然上述方案解决了集群问题但对于Mysql服务器之间的负载均衡还是存在问题的下面我们就选用官方推荐的方案配合梭子鱼安全负载均衡机来实现真正高效可靠的大型应用架构
梭子鱼负载均衡解决方案
· 采用两台梭子鱼安全负载均衡机LB的双机HA冗余结构实现对后端多台MYSQL服务器的实时负载均衡
· 采用梭子鱼LB特有的负载均衡算法保证大量的数据库请求链接负载实时高效均衡
· 梭子鱼LB对每台MYSQL服务器的服务端口进行健康检查当某台MYSQL服务器发生故障则停止该台设备的工作并从整个负载均衡队列中自动移除
· 基于应用的结构便于以后业务系统无缝拓展性价比最优的解决方案保护用户的投资
解决方案图及示意拓扑
为什么选择梭子鱼
·高性能梭子鱼LB负载均衡机提供业界至强的服务器负载均衡性能支持每秒的新建连接 万的并发连接
·梭子鱼安全负载均衡机独特的无跳线连接心跳监控方式提供快速切换是MYSQL集群服务这样的实时关键系统所必需的
·SSL卸载和加速避免SSL加解密运算对服务器造成的额外压力提高服务器的处理能力 保证HTTPS访问的高效安全可靠
·强大的安全保护梭子鱼安全负载均衡机内置集成了IPS实时安全防护系统可以检测并阻挡多种入侵攻击和DOS攻击