MMM+Amoeba搭建MySQL高可用负载均衡群集
MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。MySQL的读写分离就是只在主服务器上写,只在从服务器上读。基本原理就是让主数据库处理事务性查询,而从服务器处理select查询。数据库复制被用来事务性查询导致的变更同步到群集中的从数据库。 Amoeba主要为应用层访问MySQL时充当sql路由,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关到目标数据库、可并发请求多台数据库。通过Amoeba能够完成数据源的高可用、负载均衡和数据切片等功能。 MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。 amooeba在实际使用中存在单点故障的问题,所以在学习了MMMM之后,我就尝试了使用mmm+amoeba的架构来避免主库的单点故障,接下来我就为大家在虚拟机上模拟服务的搭建过程 项目环境 使用六台服务器模拟搭建,拓扑图如下: