前几天和朋友一起吃饭,聊起了数据库的话题。
他向我诉苦道:“我们公司有套‘古老’的系统,分库分表是自己代码实现的,做得不怎么样,现在系统要升级,我实在是不想维护了!”
早些年,为了支撑海量数据的访问,基本上都是自己手工实现分库分表,自己去做查询的路由,结果的合并,分布式事务,它还成了后端面试必问的问题之一。
我说:“考虑分布式数据库吧,在那里分库分表已经成为一种内置的技术了,自动扩展,程序员可以直接使用,不用考虑烦人的细节问题了。”
他说:“有什么好的分布式数据库可以推荐吗?”
我想起来了前几天看到的一个消息,是全球领先的IT研究和咨询公司IDC发布的一个报告《IDC MarketScape:中国分布式关系型数据库 2023年厂商评估》,把图片给他发了过去:
他看了一会儿说:“这个腾讯云的黄色圆圈最大,是不是市场占有率最高?”
我说:“对,腾讯云分布式数据库处于‘领导者’类别,市场份额上也是国内第一。”
IDC对腾讯云分布式数据库的评价是非常高的:
TDSQL数据库拥有金融级分布式和云原生多引擎融合的完整数据库产品体系,提供业界领先的金融级高可用、计算存储分离、企业级安全等能力。客户覆盖金融、泛互联网和泛零售等众多行业,其专家服务团队为客户提供成熟完整的解决方案,以及基于标准方法论的体系化服务,保障项目顺利上线和客户成功。
这些评价读起来比较“抽象”,站在程序员角度看,TDSQL能取得这样的成绩,我感觉除了自身实力强悍之外,更重要的是它很实用,确实解决了程序员面对的问题。
对程序员来说,普遍关注的问题是:我的数据量那么大,我的业务只想看到一张逻辑完整的表,不想知道后端的物理架构,换句话说,能不能做自动的水平拆分?
答案是肯定的,TDSQL不但能实现自动水平拆分,让分表对业务透明,还能实现不停机的弹性扩容。
当容量或者性能不足的时候,在控制台点击,即可自动升级完成。
升级过程中,无需关心分布式系统内的数据迁移,均衡和路由切换。
升级完成后访问 IP 不变,仅在自动切换时存在秒级闪断,仅需确保有重连机制即可。
这种“透明”的扩容,实在是太爽了,极大程度上把开发人员从繁琐的细节中解放了出来!
互联网应用流量大,读写分离也是必备的,TDSQL是默认支持的:架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上,以支撑大型应用程序的读取流量。
更加罕见的是,TDSQL支持“强同步复制”,腾讯自主研发的并行多线程强同步复制方案,只有当备机数据完全同步(日志)后,才由主机给予应用事务应答,保障数据正确安全。
自动水平拆分、读写分离、强同步复制,这些功能都是程序员在工作中必备,但是手工实现很难的功能,TDSQL把它们都实现了,肯定会受到市场的欢迎啊!
所以,TDSQL非常适用于那种大型超高并发实时交易的应用,例如电商、金融、O2O、社交应用、零售等,因为它峰值 QPS 达1500万+,再加上线性扩展,可以轻松应对高并发的实时交易场景。
实际上,微信支付、财付通、腾讯充值等都是使用的 TDSQL的数据库。当然,对于物联网数据(PB 级数据存储访问场景),文件索引(万亿行数据毫秒级存取),TDSQL也轻松应对。
随着时代的发展,业务不但要求要有OLTP,还要有OLAP,由于这两个家伙是矛盾的,OLTP 场景涉及数据量小,但对返回实时性要求高;OLAP 类场景涉及的数据量和计算量大,但是对实时性要求不高。
程序员没办法,只好搞两套数据库,把数据搬来搬去,很麻烦。
TDSQL则解决了这个问题,同一个数据库,不但可以在业务应用中实现高效的OLTP处理,还可以在数据分析平台中做一定规模的OLAP,降低业务复杂度和成本。
TDSQL 还高度兼容Oracle语法,如果你想去O,绝对是理想选择。
以要求严苛的金融业核心系统为例,Oracle替换主要面临三个挑战:
(1)Oracle语法和功能需要做到全兼容。
(2)Oracle承载大量核心业务逻辑导致迁移和适配代码量巨大。
(3)业务适配和测试需要细致且全面。
TDSQL主要从三个层面兼容Oracle:
(1)内核兼容,内核与驱动层面进行Oracle语法兼容,做到应用层面不改 代码;
(2)性能兼容,复杂SQL与核心业务逻辑执行性能对齐Oracle;
(3)习惯兼容,应用开发习惯与周边工具可以实现兼容配合。
TDSQL的周边生态也很丰富,可以通过集群化的 PostGis 插件,支持存储空间地理数据,使 TDSQL成为一个空间数据库,能够通过 SQL 语言高效的进行空间数据管理、数量测量和几何拓扑分析。它不仅是一个分布式关系型数据库系统,同时还支持JSON等非关系数据类型。
可能大家会想到,这个TDSQL性能怎么样啊?
有人可能知道TPC-C,这是全球数据库厂商公认的性能评价标准,被誉为数据库领域的“奥林匹克”。它模拟超大型高并发的极值场景,同时有一套严格的审计流程和标准,对数据库系统的软硬件协同能力要求极高。
为通过这一考验,腾讯云数据库把单机性能优化到极致,成功抗住了每分钟8.14亿笔交易,同时在超高压下稳定运行8小时无抖动,波动率仅为0.2%,远超TPC-C审计要求。
这标志 TDSQL 的分布式架构设计和资源调度能力,均达到了业界顶级水平,是我国国产数据库技术取得的新突破。
基于腾讯云数据库TDSQL的分布式核心数据库底座,众多的银行和证券等金融机构的核心系统实现了国产化转型。TDSQL已经被4000多家来自金融、公共服务和电信等垂直行业客户采用,服务超过30家金融机构完成核心系统替换,中国十大银行中的七家都应用了 TDSQL。
这十多年来,国内互联网爆发式发展,带来了丰富的场景和应用,业务的需求倒逼国产数据库不得不突破原来的单机限制,走向分布式、走向云端。
像腾讯云TDSQL这样的国产分布式数据库,经历了海量用户、超高并发的严酷考验,不但在世界舞台上和巨头竞争中不落下风,在很多方面还取得了领先。如果你有数据库方面的需求,不妨考虑下TDSQL这样的国产数据库。