MyCat-简介-MyCat 历史 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习 MyCat-简介-MyCat 历史

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(一):MyCat-简介-MyCat 历史】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/755/detail/13237


MyCat-简介-MyCat 历史

一、MyCat 的历史

1、 Mycat 前身是阿里曾经开源的知名产品— Cobar,Cobar 的核心功能和优势是 MysqL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 比较精通,后来从阿里跳槽,阿里随后开源的Cobar ,并维持到2013年年初。 Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQT Server,连接的目前市面上绝大多数 MysL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。应用程序连接 Cobar 与连接 Mysql 一致,数据库的驱动、连接的字物块及操作的语句都不需要改变,而 Cobar 只是一个中间件,最终进行数据的查询和插入都需要用到 Mysql 。

2、Mycat 是基于 cobar 演变而来,相对于 cobar 来说,有两个显著优势:

(1)对 cobar 的代码进行了彻底的重构,Mycat 在 I/O 方面进行了重大改进,将原来的 BIO 改成了NIO,并发量有大幅提高,同时访问性能也大大增加。

(2)增加了对 order By、Group By、Limit 等聚合功能的支持,同时兼容绝大多数数据库成为通用的数据库中间件。

// 早期的 cobar 也支持 order By、Group By、Limit 等,但没有聚合功能,Mycat 对这一功能进行了增强。总结来说,Mycat 的两个优势为:性能提高、功能增强。故 Mycat 在市面上用的比较多,是一个比较通用的数据库中间件。

3、简单的说, MyCAT 就是一个新颖的数据库中间件产品支持mysql 或者 mariadb cluster 的集群,mariadb cluster 可以看作 mysql 的一个分支,这两个数据库的驱动及具体操作基本一致,提供高可用性数据分片集群。可以像使用mysql 一样使用 mycat 。对于开发人员来说根本感觉不到 mycat 的存在。

4、应用程序原来是直接操作 mysql 数据库来进行相关的增删检查,但是 mysql 在这一部分存在互容的问题,单排的容量是有限的,假如数据量逐渐增长,由于考虑到 mysql 的互容,所以需要搭建 mysql 的提取,则数据库中间件出现可以解决这一问题。

image.png

// 应用程序直接操作数据库的中间件,由 mycat 将请求路由至节点主机所部署的 mysql ,分片 1-6 分别对应 6 个数据库,而其中存储的内容各不相同,如此就完成了横向互容,且 mysql 集群的存储能力增加,但是对于操作来说,并不关心 6 个数据库是如何操作的(数据库的插入和查询),而是学会操作 Mycat 的部分,因为数据库的插入和查询都是由 Mycat 来控制操作的。故 Mycat 的出现解决了这些问题,并且可以支持 mysql 的提取,从而简化应用程序的操作。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
虚拟化
故障案例-ESXI6.7 EP13 紫屏分析
一台ESXI6.7 EP13 紫屏分析过程
2712 0
|
开发工具 git
git篇3:idea中创建项目并提交到远程Git仓库
git篇3:idea中创建项目并提交到远程Git仓库
3004 2
|
存储
QT图形视图框架绘制曲线图和Smith图
QT图形视图框架绘制曲线图和Smith图
340 0
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
1247 0
|
12月前
Threejs制作窗户透亮效果
这篇文章讲解了如何在Three.js中制作窗户的透亮效果,包括设置透明材质和光照以实现逼真的窗户渲染效果的技术细节。
267 1
|
存储 弹性计算 大数据
阿里云服务器怎么样?全访问解析云服务器ECS功能、租用、优缺点及使用说明
阿里云ECS是弹性计算服务,提供安全可靠的云服务器,包括多种实例规格如经济型、通用型、计算型等,适合不同场景。ECS支持VPC专有网络、快照与镜像、多种付费模式。用户可根据业务需求选择实例、存储类型和网络配置。阿里云服务器适用于Web应用、游戏、大数据和深度学习等场景,提供免费试用和不同优惠套餐。众多知名企业如新浪微博等信赖阿里云服务。更多信息可访问阿里云官方网站。
546 5
|
SQL 监控 数据库
MSSQL性能调优实战技巧:索引优化策略、SQL查询重构与并发控制详解
在Microsoft SQL Server(MSSQL)的管理与优化过程中,性能调优是确保数据库高效运行的关键环节
|
存储 监控 负载均衡
MongoDB的水平扩展能力
MongoDB的水平扩展能力
197 3
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
敏捷开发 Java 测试技术
「架构」模型驱动架构设计方法及其运用
本文探讨了MDA在软件开发中的应用,从需求分析到测试,使用UML建模功能需求,通过PIM设计架构,自动生成代码以减少错误。MDA提升了可维护性、可扩展性和可移植性,通过工具如Enterprise Architect和Eclipse MDT支持自动化转换。虽然有挑战,如模型创建和平台转换,但结合敏捷方法和适当工具能有效解决,从而提高开发效率和软件质量。
1230 0
「架构」模型驱动架构设计方法及其运用