登录后再学习,可使用学习中心、个人中心等更完善的课程服务。立即登录>
关闭

MariaDB(TDSQL)架构简介

  • 1 课时
  • 7.1K 学过
  • 9 分
云数据库 MariaDB数据库架构设计

课程概述

TDSQL是腾讯云针对金融级联机交易场景推出的高一致性、分布式数据库集群解决方案。它具有高稳定性、高可用性等特点,获得了多项国际和国家认证,得到了客户及行业的一致认可。

本课程将介绍TDSQL的架构和核心技术,如数据复制方式、高一致性容灾、数据高可用性的保障机制、数据备份、安全防护、读写分离、多源同步等。课程还将介绍分布式事务的设计架构和对异常的处理。

【课程目标】

了解TDSQL的架构

了解TDSQL运用的核心技术

了解分布式事务的原理和设计架构

【适用对象】

商务、架构、开发、运维

【课程大纲】

知识模块

简介

MariaDB(TDSQL)架构简介

MariaDB(TDSQL)架构简介

适用人群

  • 云计算开发人员

机构简介

腾讯产业互联网学堂

腾讯云旗下面向云生态用户的一站式学习成长平台

讲义

TDSQL架构分析

目录

  • 简介
  • 核心特性
  • 分布式实践
  • 部署实践

简介

TDSQL(Tencent Distributed MySQL)是腾讯针对金融级 联机交易场景推出的高一致性,分布式数据库集群解决方案

核心特性

高一致性、高可用性、高性能

TDSQL核心架构:

实例:从业务视角看到的一个具有完整能力的数据库

分片(sharding):是由数据库节点组(SET)和支撑系统组成一主多从数据库,也是水平拆分后承载数据的基本单元

节点(DataNode):承载分片的五里界店,一个SET通常包括一个主节点和多个从节点。

Proxy:账号鉴权、管理连接、SQL解析、分配路由的网关模块

调度集群、决策集群:作为几群的管理调度中心,主要保证数据库及诶单组、接入网关集群的正常运行;

ADS节点:扩展的计算节点,采用只读的方式与SET连接,以JDBC的方式获取数据,以spark作为基础

主备数据复制方式:

主要分为:异步复制、半同步复制、强同步复制

半同步复制的不足:超时后退化成异步,金融场景不合适;跨IDC的情况下性能不乐观

为了解决这个问题:

通过用户线程异步化,在等待返回应答时保存THD会话,让线程可以去处理别的连接,不会做无用的等待

高一致性容灾——如何保证没有脏数据

原则:

1. 主机可读可写,备机只读,备机可以开放给业务查询使用

2. 任何时刻同一个SET不能有两个主机

3. 宁愿拒绝服务,不提供错误的服务,追求CAP中的C,必要的时候牺牲掉部分A

1. 主DB降级为备机

2. 参与选举的备机上报最新的binlog点

3. Scheduler收到binlog点之后,选择出binlog最大的节点

4. 重建主备关系

5. 修改路由

6. 请求发给新的主机

数据高可用性的保障机制(恢复):

注:为了保障数据高可用性,一般用三个副本

数据备份:

物理备份:

1. 利用xtrabackup备份物理文件。

2. 每天凌晨或者指定时间点备份一次

3. 压缩备份到HDFS。

4. 可配置。

逻辑备份:

1. 利用mydumper备份工具

2. 每天备份一次

3. 压缩备份到HDFS

4. 每个库、表结构、表数据独立备份,恢复时可以单独恢复

binlog备份

1. 实时备份binlog到hdfs。Lz4压缩。

全面安全防护:

事前:IP白名单;SSL连接加密;SQL防火墙

事中:文件透明加密;网络隔离;运维安全保障

事后:数据库审计;操作日志审计;服务器审计

性能:

环境:ts85机型(x86,24核(48超线程), 512G内存, 6T SSD)

读写分离:

基于数据库账号的读写分离:

基于Hint和自动分析事物的读写分离:

分布式实践,扩展性、分布式事物

多源同步:

适用于分支>总部等业务架构;

子系统>总系统等系统架构;

Shard水平扩容:

注:在用户建表时就会在逻辑上进行打散,若用户需要扩容,就将各个节点进行搬迁,从而进行水平扩展

分表、单表、广播表:

分表:水平拆分的表

单表:不做任何特殊处理的表

广播表:每个分片(SET)都有的表

分布式事物设计架构:

采用两阶段算法(2PC)

完全去中心化、性能线性增长

健壮的异常处理

全局思索监测机制

TPCC-标准

分布式事物-异常的总结:

调用commit之前遇到超市或者失败;解决方案:直接自动回滚

调用commit的结果:

1) 成功,所有涉及到事务的节点都更新成功

2) 失败,所有的操作会回滚

3) 超时,不能立即确认是成功还是失败,但是通过select xid可以查询到事务的id,后面可以通过这个xid查询事务最终的执行结果

分布式事务性能对比:

测试方案:

采用Sysbench进行测试(每个数据库实例10张表,每个表1000000条记录,每个事物2个update,一个insert,一个delete)

256个连接,每个用例测试30分钟

测试结果:

单个proxy,单个mysql实例tps:30000

2个proxy,2个mysql实例tps:43500

分布式事务下性能是非分布式的43500/(30000*2)=72%

对比:

选型推荐:

中小规模 巨大规模

数量:<2T 数据量:>2T

Tps:<8K/s Tps: >8K/s

通用性 >容量伸缩 通用性 <容量伸缩

部署实践

数据库机器配置建议:

TDSQL自可支持虚拟化和隔离,但仍建议用物理机

  • 内存>=128G
  • 内存与磁盘容量的比例>5%
  • CPU24核(逻辑CPU)以上
  • 磁盘的IOPS在3W以上(建议用PCI-E SSD卡)

TDSQL整体视图:

同城主从双中心

1、确保机房之间数据延迟小,建议采用强同步复制

2、故障时,系统会有限在本地机房选举切换

3、配置可蜕化,确保若两个机房网络终端自动退化为异步

课程评价(4)

感谢你参加本课程,请你作出评价:
0/300

以下选自学员评价

用户5***869
2019-10-27
不错哟
用户4***983
2019-01-14
可以了解基本架构情况
用户3***026
2018-09-18
讲的很精彩
那***丹
2018-07-18
初步了解了