MySQL读写分离基本原理是什么
来源:亿速云
时间:2023-04-30 18:32:48 216浏览 收藏
本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《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的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
381 收藏
-
101 收藏
-
499 收藏
-
361 收藏
-
113 收藏
-
434 收藏
-
335 收藏
-
242 收藏
-
449 收藏
-
127 收藏
-
163 收藏
-
152 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习