MyCat - 架构剖析 - 总体架构介绍 | 学习笔记

简介: 快速学习 MyCat - 架构剖析 - 总体架构介绍

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat - 架构剖析 - 总体架构介绍 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/757/detail/13293


MyCat - 架构剖析 - 总体架构介绍

内容介绍:

一、源码下载及导入

二、总体架构

三、总体执行流程

 

一、源码下载及导入

下载 mycat 的源码导入到i件中,因为在这章节讲解时会涉及到

mycat 源码。

1、访问百度,找到 mycat 官方网站

image.png

2、点击下载

image.png

3、进入 github,里面有 mycat 的源码

image.png

4、下载源码,得到地址,通过 github 克隆到本地

image.png


二、总体架构

MyCat 在逻辑上由几个模块组成:通信协议、路由解析、结果集处理、数据库连接、监控等模块。

如图所示:

image.png

1、通信协议模块:

指的是客户端与服务端之间的通信,涉及到 i/o 模型,会有客户端与服务端 i/o 的架构,还包含 MyCat 和 Mysql 交互的协议,通信协议模块承担底层的收发数据、线程回调处理工作,MyCat 通信协议默认采用Reactor模式,在协议层采用 Mysql 协议。

通讯协议模块职责是底层收发数据以及 Mysql 协议的模拟。

2、路由解析模块:

负责对客户端传入的 sql 语句进行语法解析,解析语句的条件、类型、关键字、查询方式等,并进行优化。

3、sql 执行模块:

比如有一条查询语句在路由解析模块查询解析并且优化完后交给 sql 执行模块,负责从连接池中获取连接,再根据路由解析的结果,把 sql 语句分发到相应的节点执行。

4、数据库连接模块:

mycat 将 sql 语句分发到 mysql 各个节点,连接 mysql 涉及到连接维护,涉及到连接池等,就会对各个节点的结果进行一个处理,负责创建、管理、维护后端的连接池。为减少每次建立数据库连接的开销,数据库使用连接池机制对连接声明周期进行管理。

5、结果集处理模块:

当执行完 sql 语句,它会有相关的结果集,mycat 拿到各个节点返回的结果集,对其结果集进行处理,负责对跨分片的查询结果进行汇聚、排序、截取等。

6、监控管理模块:

负责 MyCat 的连接、MyCat 中的 i/o、内存等资源进行监控和管理。也会监控在 MyCat 中执行的 sql 语句,是插入为主还是查询为主,针对各个表的操作,针对于各个节点的操作,在监控平台中都可以看到,监控主要通过管理指令及监控服务展现一些监控数据,管理则主要通过轮询事件来检测和释放不适用的资源。


三、总体执行流程

application

image.png

应用程序连接上 mycat 服务,用到网络通信,因为客户端和服务端交互,在后面会提到网络通信有两种,一种是 nio,一种是 aio,传统的 bio 在新版的 mycat 中采用的,通过 i/o 可以接收到从客户端过来的请求,进行 mysql 协议的解析模拟,执行相关的 sql 语句,交给 sql 解析组件进行解析,交给优化组件进行优化,sql 语句最终交给 sql 执行组件,sql 执行组件是根据 sql 解析路由优化的结果执行 sql 语句,sql 要分发给各个节点进行执行,各个节点 mysql 执行完 sql 语句后,执行的结果要在结果集进行汇总,排序等相关操作,最终将结果返回给客户端运行程序,在 mycat 会涉及到事务心跳,缓存,资源管理等监控相关操作。

接下来会会针对每一个模块所涉及到的核心的东西进行分析、剖析。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
1081 81
|
9月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
1255 0
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
693 1
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
361 1
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
2441 0
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
1668 0
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
450 0
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
435 0