本篇内容主要讲解“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读写分离基本原理是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。