加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何理解Mycat读写分离

发布时间:2023-08-18 12:34:20 所属栏目:MySql教程 来源:
导读:这篇文章主要介绍“怎么理解Mycat读写分离”,在日常操作中,相信很多人在怎么理解Mycat读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Mycat读写

这篇文章主要介绍“怎么理解Mycat读写分离”,在日常操作中,相信很多人在怎么理解Mycat读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Mycat读写分离”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1 MySQL读写分离的概述

Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。

因此,一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力,这样的方案来进行部署与实施的。

1.1 读写分离工作原理:

基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

数据内部交换过程:

1.2 为什么要读写分离:

1)面对越来越大的访问压力,单台的服务器的性能成为瓶颈,需要分担负载;

2)主从只负责各自的写和读,极大程度的缓解X锁和S锁争用;

3)从库可配置myisam引擎,提升查询性能以及节约系统开销;

4)增加冗余,提高可用性。

1.3 实现读写分离的方式:

一般有两种方式实现

1)应用程序层实现,网站的程序实现;

2)应用程序层实现指的是在应用程序内部及连接器中实现读写分离。

优点:

A:应用程序内部实现读写分离,安装既可以使用;

B:减少一定部署难度;

C:访问压力在一定级别以下,性能很好。

缺点:

A:架构一旦调整,代码要跟着变;

B:难以实现高级应用,如自动分库,分表;

C:无法适用大型应用场景。

中间件层实现

中间件层实现是指在外部中间件程序实现读写分离

常见的中间件程序:

Cobar:

阿里巴巴B2B开发的关系型分布式系统,管理将近3000个MySQL实例。在阿里经受住了考验,后面由于作者的走开的原因cobar没有人维护了,阿里也开发了tddl替代cobar。

MyCAT:

社区爱好者在阿里cobar基础上进行二次开发,解决了cobar当时存在的一些问题,并且加入了许多新的功能在其中。目前MyCAT社区活跃度很高,目前已经有一些公司在使用MyCAT。总体来说支持度比较高,也会一直维护下去,

OneProxy:

数据库界大牛,前支付宝数据库团队领导楼总开发,基于mysql官方的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件,楼总舍去了一些功能点,专注在性能和稳定性上。有朋友测试过说在高并发下很稳定。

Vitess:

这个中间件是Youtube生产在使用的,但是架构很复杂。与以往中间件不同,使用Vitess应用改动比较大要使用他提供语言的API接口,我们可以借鉴他其中的一些设计思想。

Kingshard:

Kingshard是前360Atlas中间件开发团队的陈菲利用业务时间用go语言开发的,目前参与开发的人员有3个左右,目前来看还不是成熟可以使用的产品,需要在不断完善。

Atlas:

360团队基于mysql proxy 把lua用C改写。原有版本是支持分表,目前已经放出了分库分表版本。在网上看到一些朋友经常说在高并发下会经常挂掉,如果大家要使用需要提前做好测试。

MaxScale与MySQL Route:

这两个中间件都算是官方的,MaxScale是mariadb (MySQL原作者维护的一个版本)研发的,目前版本不支持分库分表。MySQL Route是现在MySQL官方Oracle公司发布出来的一个中间件。

优点:

A:架构设计更灵活;

B:可以在程序上实现一些高级控制,如:透明化水平拆分,failover,监控;

C:可以依靠些技术手段提高mysql性能;

D:对业务代码的影响小,同时也安全。

缺点:

需要一定的开发运维团队的支持。

2 什么是MYCAT

一个彻底开源的,面向企业应用开发的大数据库集群;

支持事务、ACID、可以替代MySQL的加强版数据库;

一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群;

一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server;

结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品;

一个新颖的数据库中间件产品。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章