首页数据库MySQL中读写分离的原理及实现是怎样?

MySQL中读写分离的原理及实现是怎样?

时间2024-03-22 00:27:03发布访客分类数据库浏览339
导读:这篇文章给大家分享的是“MySQL中读写分离的原理及实现是怎样?”,文中的讲解内容简单清晰,易于理解,而且实用性强吗,对大家认识和了解“MySQL中读写分离的原理及实现是怎样?”都有一定的帮助,有需要的朋友可以参考了解看看,那么接下来就跟随...
这篇文章给大家分享的是“MySQL中读写分离的原理及实现是怎样?”,文中的讲解内容简单清晰,易于理解,而且实用性强吗,对大家认识和了解“MySQL中读写分离的原理及实现是怎样?”有一定的帮助,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧


一、读写分离工作原理

在一些大型网站业务场景中,单台数据库服务器所能提供的并发量已经无法满足业务需求,为了满足这种情况,一般而言是通过主从同步的方式来同步数据,在此基础上,通过读写分离来提升数据库的并发和负载能力。
一般而言,业务场景下对数据库的查询操作要远远高于增、删和改,并且读操作对数据库的影响要更小。因此,我们一般会设置一台数据库服务器作为主服务器,主要承担数据的增、删和改的任务,配置3-4台数据库服务器为从服务器,主要承担数据的查询任务。数据库从服务器从数据库主服务器中同步数据,以此实现数据的一致性。

二、读写分离实现方式

根据读写分离实现的层级,读写分离一般有两种方式实现,通过应用程序层实现和通过中间件层实现。
通过应用程序层实现是指在网页内部实现数据查询语言和数据操作语言分别指向不同的MySQL主库和从库。通过应用程序层实现的MySQL读写分离图解如下:

这样做的优点是减少了部署的难度,部署安装即用,且性能较好,缺点是当架构拓展时也要修改代码,难以实现自动分库、分表等高级操作,在一些大型应用场景中不是很适用。
通过中间件层实现是指在应用程序层统一将所有的SQL语句指向一个中间件设备,由该中间件设备将不同的SQL语句指向不同的数据库服务器进行操作。通过中间件层实现读写分离图解如下:

这样做的优点是架构设计更加灵活,对业务代码影响较小,可移植性好,并且可以实现高级控制,但是这种架构需要专业的运维人员对架构进行维护。

三、读写分离常用中间件

常用的读写分离中间件程序有以下种:
1、cobar
阿里B2B开发的关系型分布式系统,是一款早期的中间件,后来因开发者离职而无人维护。
2、MyCAT
技术爱好者在cobar的基础上进行了二次开发,解决了cobar的一些问题,并加入了一些新功能,目前MyCAT社区活跃度较高,也有很多公司在使用MyCAT。
3、OneProxy
Oneproxy是一款商业收费的中间件,由支付宝团队开发,在高并发场景下十分稳定。
4、Vitess
该中间件架构复杂,且使用Vitess需要使用其所提供的API接口。
5、Kingshard
由360团队开发,支持分库分表,但是在高并发情况下稳定性一般。
6、MaxScale和MySQL Route
这两者均为MySQL官方中间件。Maxscale是Mariadb研发的,MySQL Route是现在Oracle公司为MySQL数据库发布的中间件。


现在大家对于MySQL中读写分离的原理及实现是怎样?的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多MySQL中读写分离的原理及实现是怎样?的知识,欢迎关注网络,网络将为大家推送更多相关知识的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MySQL中读写分离的原理及实现是怎样?
本文地址: https://pptw.com/jishu/649780.html
MySQL里面InnoDB锁的机制种类有哪些? Mysql里面的Enum数据类型是什么?

游客 回复需填写必要信息