1 TDSQL 架构
在之前的博客我们了解了TDSQL 集群架构的相关组件,如下:
TDSQL 架构 组件 说明
https://www.cndba.cn/dave/article/4586
但是相关组件的功能描述的不够详细,本篇我们继续深入学习下TDSQL 中4个主要模块的功能。
TDSQL 的架构图如下:
2 主要模块功能-Scheduler
Scheduler作为集群的管理调度中心,主要功能如下:
- 管理set,提供创建,删除set,set内节点替换等工作;
- 监控set内各个节点的存活状态,当Set内主节点故障,发起高一致性主备切换流程;
- 根据set内个节点运行状况,更新set状态,设置watch节点,支持自动退化和恢复等;
- 管理扩容、回档等流程工作;
- Scheduler自身的容灾通过zk的选举机制完成,保证中心控制节点无单点。
3 主要模块功能-OSS
OSS提供管理和控制TDSQL集群的一个操作接口工具, 主要功能如下:
- OSS负责接收用户的请求,完成TDSQL的部署、初始化、扩容等等一系列的操作。
- 实例管理
- 集群实例管理
- 数据库管理
- 数据库迁移
- 数据库参数
- 用户权限管理
- 资源管理
- 网关管理
- 机器管理
4 主要模块功能-Agent
MySQL agent 的功能如下:
- MysqlAgent作为Mysql的旁路模块,承担着节点和集群(zk、schedule)桥梁的作用。
- 通过对zk的watch监听实现和zookeeper的通信。通过socket长连接保证和DB的交互。
5 主要模块功能-Proxy
proxy 也是TDSQL 中的SQL 引擎,主要功能如下:
- 从zookeeper中拉取最新的路由表保存到本地文件和内存;
- 将SQL请求路由到对应的Set,支持读写分离 ;
- 对接入的IP,用户名,密码进行鉴权;
- 记录完整的SQL执行信息,完成实时的SQL请求的时耗,成功率等指标监控分析;
- 对count,distinct,sum,avg,max,min,order by,group by等聚合类SQL一般需要访问后端的多个Set,网关会分析结果并做合并再返回;
- 网关无状态,既支持与业务部署到一起,也可以独立部署(可通过TGW或者LVS做容灾)。
版权声明:本文为博主原创文章,未经博主允许不得转载。