陈老师:1415968548 郑老师:2735197625 乐老师:354331153
客服热线:
19941464235/19906632509(微信同号)

客服微信

腾讯云分布式数据库TDSQL初探

作者:王坤
原创
发布时间:2021-05-21 10:24
浏览量:456


目录

1.初识

2.TDSQL简介

3.架构认知

4.赤兔组件

5.数据库集群管理

6.期待改进的方向

7.下一个风口



No.

1


初识



不久之前,某大厂受鹰将和兔子贸易战影响,5G芯片发展受阻,不得不卖掉部分手机业务。即使很有¥,ORACLE也不卖原厂授权,只能外包ORACLE服务到第三方公司。

商业的发展和IT的可持续性,被各种卡脖子,磨难历历在目,而在关系型数据库方面,国内众多核心业务系统关系型数据库技术也是严重依赖于ORACLE。

2020年年末,仿佛突然间,国产数据库爆发了,突然看到了光芒。除原有的一众国产RDBMS,如达梦,发布一些新版本外,一众国产的分布式数据库扎堆推广、产单,如AnalyticDB、EsgynDB、GoldenDB、OCEANBASE、TDSQL、TiDB...(A -> Z)。

百闻不如一见,面对一众数据库,本着先从大厂择一开拓的想法,近几日,兴趣蔚然,测试了鹅厂的分布式数据库TDSQL,下面就个人对TDSQL浅薄的认知进行分享,不足之处,还望抛砖。‍



No.

2


TDSQL简介




· 分布式数据库(Tencent Distributed SQL,TDSQL)是腾讯推出的一款兼容MySQL的自主可控的、高一致性、分布式的数据库产品。

·  2002腾讯内部部分业务使用mysql数据库,2012年TDSQL诞生在腾讯内部,2014年在微众银行核心系统投产,2015年提供腾讯云TDSQL服务,2019年传统银行核心系统使用,2020年TDSQL已经为超过600机构提供数据库服务。

·  它支持自动水平拆分,业务感受完整的逻辑表,而数据却均匀的拆分到多个物理分片中,可以有效解决超大并发、超高性能、超大容量的OLTP类场景;

·  TDSQL的每个分片默认采用主从高可用架构,提供弹性扩展、备份、恢复、容灾、监控、迁移、分析、优化等全套解决方案,适用于TB或PB级的海量数据库场景。

·  应用在电商、金融、O2O、社交应用、零售、SaaS、音视频等领域,腾讯90%的金融、计费、交易类业务核心系统承载在TDSQL中,TDSQL拥有核心系统的多年商用经验,可达到金融级别99.999%以上高可用性。‍




No.

3


架构认知




TDSQL是基于MySQL/Mariadb社区版本打造的一款金融级分布式数据库集群方案。采用优化的强同步技术,保障了运行速度的同时,确保数据库分布式集群间数据一致,保障数据安全。

TDSQL集成了TDSQL Agent、TDSQL SQLEngineSQLEngine、TDSQL Scheduler等多个模块,实现了读写分离、AutoSharding、自动主备强一致性切换、自动故障修复、实时监控、实时冷备、支持扩容等一系列功能。

图1 TDSQL系统总览


下面从TDSQL系统总览认知进行分享:

·  从资源池来看,可部署在物理机和虚拟机上,建议物理机部署,当然也有云上TDSQL;

·  存储节点:可以使用传统的单数据库(Noshard)方式运行,也可以采用分布式数据库集群;

·  计算节点(数据库节点):支持HATP,采用OLTP和OLAP两种引擎,OLAP功能还在研发中;

·  赤兔平台:对数据库进行日常基本运营,提供监控等。

·  扁鹊平台:包含在赤兔平台,包含日常的可用性分析、性能分析、锁的分析、SQL优化、系统健康诊断等。

·  同时提供了较多的服务功能模块(系统),如常见的维护性功能:备份恢复、数据迁移、资源调度、容量调度、多租户管理等,还包含了数据库安全功能:审计、数据校验、SQL审核等,还使用了大数据技术对平台数据的分析治理功能。




No.

4


赤兔组件




赤兔管理平台包含了:集群总览、资源管理、DB汇总监控、网关汇总监控、接入层管理、调度与管理系统、数据同步、控制台操作日志、告警分析、集群管理、业务运营、接口管理。系统管理众多模块,用来进行集群的日常维护,各组件的运行状态查看、异常告警、权限管理、系统升级、授权等维护。

图2 TDSQL赤兔管理台界面


TDSQL的组件:

·  Zookeeper-zookeeper集群,提供高可用性和一致性集群;

·  Keeper(Manager/scheduler)-负责TDSQL调度模块,进行主备切换、扩缩容、资源管理;

·  OSS-TDSQL操作接口,提供http页面操作接口;

·  DB-数据库模块,包含mysql和agent;

·  Proxy-网关模块,账号鉴权、sql解析和转发;

·  Monitor-监控采集模块,从zk定期采集实例动态数据;

·  Chitu-运营平台,进行实例管理、告警管理权限控制等;

·  Clouddba-扁鹊系统,提供sql优化和诊断

·  HDFS-冷备存储模块,备份binlog/slowlog/errorlog;

·  LVS-负载均衡模块,提供vip,对业务透明到后端proxy;

·  Kafka-消息队列,多源同步和elaticsearch的基础组件;

·  Consumer-多源同步消费者,提供mysql、tdsql和oracle之间的同步方案;

·  Elaticsearch-数据检索及分析工具,用于分析网关日志,帮助定位问题;

·  Kibana-在elaticsearch使用spl语言分析结果展现。

不难看出,除了在提供OLTP功能外,结合了众多大数据技术,提供了海量数据存储,为后期扩展提供了基础平台,也可以在数据治理、分析、展现的功能。





No.

5


数据库集群管理




数据库集群管理包括了:实例详情、数据库管理、DB监控、Proxy监控、实例监控、告警查询、日志管理、异常会话、备份&恢复、数据迁移、性能分析模块。

图3 TDSQL数据库管理界面


各个模块功能:

·  实例详情-数据库实例概要、分布、资源、版本、网关基础信息,同时包含数据库复制方式、容灾配置、备份配置、IO隔离等其它信息;

·  数据库管理-对数据库用户、在线DDL、在线SQL、在线SQL日志、数据库参数、网关参数等进行配置、优化;

·  DB监控-当前DB节点的硬件资源使用率、运行状况、告警策略等展示和部分信息修改;

·  Proxy监控-proxy连接数、SQL总数、响应时间,运行状态、告警策略、告警状态等监控和部分信息修改;

·  实例监控-数据库实例的详细指标历史曲线图,以及实例指标的当前状态;

·  告警查询-历史告警查询;

·  日志管理-慢查询、主备切换、DBA日志、控制台操作日志、网关日志等管理,其中网关日志可通过查询在kibana中展现;

·  异常会话-数据库运行的实时会话和异常会话;

·  备份&恢复-数据库的备份和恢复操作,可以备份到HDFS、本地文件系统和COS上,可采用物理备份和逻辑备份;

·  数据迁移-提供TDSQL到mysql、oracle等迁移和mysql回迁;

·  性能分析-提供一键式巡检报告、性能报告,进行SQL优化、实时诊断(冗余索引、锁等待、死锁等)、会话检查、表空间分布、故障诊断、历史SQL分析等。

通过数据库模块集群管理来看,相比传统的ORACLE,管理功能得到极大的提升,方便了日常的维护、管理,更好的发现性能及语句问题,实时处理后,系统能较稳定运行,同时数据迁移也更加方便,提供部分数据库双向迁移。





No.

6


期待改进的方向




· anisble运维智能化,除使用anisble进行基本安装之外,加强anisble的日常管理、维护;

· tdsql待完善的方向:spark技术融入,加强OLAP功能,OLTP+OLAP结合,实现HATP数据库支撑;

·  融合闪存卡、infiniband、SSD超融合等技术的软硬结合数据库的一体机;

·  加强对ORACLE语法的支持;

·  后期多平台数据同步工具的实现,如加强从ORACLE迁移到TDSQL平台;

·  产业链及合作伙伴、销售渠道的构造,开拓更多的商业核心客户;‍




No.

7


下一个风口




TDSQL已经为超过600机构提供数据库服务。据官方介绍,TDSQL客户包括张家港行、微众银行以及省部级政务机构等,行业覆盖计费、第三方支付、银行、保险、政务等领域。君不见数家国产数据库产品集中出现在四大行、运营商客户现场进行PK测试已成为常态,一旦金融行业经过短期的验证,在国际大环境下和现有传统架构饱和的情况下,国产替代计划、IT新基建、国产技术出海等浪潮将会迎来一波的推动,带来一个新产业链,无疑又会是一个巨大的金矿。

风已来,下一个飞上天的会是谁,会是已有良好的基因的TDSQL吗?‍


*禁止转载,可转发(转发原创文章请注明出处)