对腾讯云的TDSQL的简单入门学习
一. 概念
| 分类 | 数据库名称 | 类型 |
|---|---|---|
| CDB(SQL) | MYSQL | OLTP集中式 |
| MariaDB | ||
| SQL Server | ||
| PostgreSQL | ||
| TDSQL | 分布式 | |
| CynosDB | ||
| 缓存 | memcache | 提升读性能 |
| redis | ||
| NoSQL | MongoDB | OLAP |
| HBase | ||
| CTSDB | 时序、监控 | |
| TcaplusDB | 游戏专用 |
1.1 数据处理分类 OLTP和OLAP
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)和 联机分析处理OLAP(On-Line Analytical Processing)
OLTP 是 事件驱动 、 面向应用 的,也称为 面向交易的处理过程
OLAP 是 面向数据分析 的,也称为 面向信息分析处理过程

1.2 TDSQL
TDSQL( Tencent Distributed SQL ,腾讯分布式数据库)是腾讯推出的一款 兼容MySQL , 自主可控 , 兼高一致性 的 分布式数据库 。
它支持 水平自动拆分 ,有 完整业务逻辑表 ,而且 数据 被均匀拆分到 多个物理分片 中,有效的解决 超大并发 , 超高性能 , 超大容量 的 OLTP 类场景
二. 核心架构

- 赤兔管理台: 运维管理平台
- OSS:http协议操作接口
- sheduler/manager: 运维管理模块,负责高可用切换,资源调度等
- **
Zookeeper**: 决策模块,保存集群元数据,提供配置维护、选举决策、路由同步等 - **
SQL引擎(Proxy)**:计算节点,负责权限管理。SQL转发,读写分离等。 - 数据节点(Set) : 部署MySQL数据库服务,并包含Agent状态监控模块
- Hadoop: 负责备份数据库的数据
- Kafka:负责SQL的审计、多源同步
三. 高可用架构
1. 同城主从双中心

每个机房2个Set, Master主节点 对 相同机房 的 Slave从节点 进行 异步复制 。对 不同机房 的 从节点 实行 强同步 (备机房至少一个从节点完成强同步返回给主节点)。
- 主机房故障时,备机房拥有最新完整数据,支持主备切换。
- 备机房故障时,如果没有Slave从节点,主机房变为了单节点,Master节点会被降级为从节点,变为只读,影响业务。 所以多一个Slave从节点,保持Master主节点的正常运行。
对Zookeeper来说,最少3个节点(拜占庭将军问题),遵循多数决策原则。如果低于3个节点,就不可用了。如果Zookeeper不可用,对访问链路无影响,但对主备切换有影响。
2. 两地三中心

同城2中心(深圳)与上面一致。另一个城市(上海),网络延迟比较大(30ms以上),采用异步复制的方式。
对Zookeeper来说,节点数大于3个,任意节点故障都不影响调度。可用性更高。