很多开发者可能没有接触过MySQL的架构部署,但是大部分应该都听说过集群架构,其实MySQL集群架构有很多种,今天我主要总结一下常用的8种集群架构。
主从架构
主从架构一般是指读写分离,它的好处是可以备份数据,并且在一定程度上缓解了读写的效率,从而提高了数据库系统的可用性。
主动/主动相互备份+
主从架构的一个特点就是如果出现故障,无法实现高可用。因此有些公司采用这种主主互备架构来解决突发单点故障带来的影响。这种架构的特点是MySQL双主复制,即互为从(只有一台提供写操作),可以实现数据库服务器的热备份,但是当一台发生故障后无法实现动态切换。利用虚拟IP可以实现双主的统一对外接口和自动巡检、故障切换机制,从而实现MySQL数据库的高可用解决方案。
主控和主备、主控+从控
这种架构比上面的主主互备+模式性能更好,可以实现读写分离等功能。
与 互相备份,Slave 都添加到一个 下
相对于上面的架构,每个主库上都增加一个从库,实在是太浪费了,而且对IO等影响比较大,如果把所有的从库都挂载到一个主库下,效率会更高。
MMM 架构
MMM(-for MySQL)是一个支持双主故障转移和双主日常管理的脚本程序。MMM使用Perl语言开发,基于MySQL主从复制这一成熟的高可用集群解决方案,由一个管理端()和多个代理端(aget)组成。
640
这种架构的优点:监控所有节点和从节点的状态。当某个节点发生故障时,VIP 会自动转移到健康节点。更重要的是,当某个节点发生故障时,后端从节点会自动转移到备份节点,继续进行同步复制。切换过程无需人工干预。
缺点:对IP和服务器数量有要求(至少两台服务器,两个真实IP,三个VIP);在业务繁忙,数据量大的时候稳定性不是很好,会出现复制延迟,切换失败等问题;所以MMM方案不适合对数据安全要求高,读写频繁的环境,当数据量大的时候会出现主从数据不同步的问题。
MHA 架构
MHA(High)是目前MySQL高可用性比较成熟的解决方案,由日本DeNA公司(现就职于该公司)开发,是一款优秀的用于MySQL高可用环境下故障转移和主从提升的高可用性软件。在MySQL故障转移过程中,MHA可以在0~30秒内自动完成数据库故障转移操作,并且在故障转移过程中,MHA可以最大程度地保证数据的一致性,实现真正的高可用性。
640
这种架构搭建难度比较大,至少需要三台机器,淘宝做了二次开发,用两台机器就可以。
MySQL Proxy的一个强大功能就是实现“读写分离”,基本原理就是让主库处理写事务,让从库处理查询。
640
官网不建议使用Lua脚本实现的读写分离,因为增加一层代理会增加网络请求的消耗,性能会受到一定影响。
for MySQL是一款优秀的中间件软件,同样可以实现读写分离,负载均衡等功能,稳定性也高于MySQL Proxy。
()项目专注于分布式数据库代理的开发,它位于服务器和DB(s)之间,对客户端透明,具有负载均衡、高可用性、SQL过滤、读写分离,可以将相关查询路由到目标数据库,并可以并发请求多个数据库合并结果。
其特点:减少数据切分带来的复杂的多库结构;提供切分规则,并减少数据切分规则对应用程序的影响;减少db与之间的连接数;读写分离。
640
专用于MySQL分布式数据库的前端代理层,主要充当应用层访问MySQL时的SQL路由器,按照用户事先设定的规则将SQL请求发送到特定的数据库执行。在此基础上可以实现负载均衡、读写分离、高可用等需求。它相当于SQL请求的路由器,其目的是提供负载均衡、读写分离、高可用的机制,而不是完全实现它们。
您的公司正在使用上述 8 种架构中的哪一种?请发表评论。谢谢转发!
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。