阿里分布式事务框架 GTS 全解析

GTS--分布式事务解决方案 GTS属于分布式事务中间件,是阿里的研发出来的,在微服务架构中分布式事务提供一站式解决方案GTS优势性能强 GTS解决事务ACID特性与高性能、高可用、低侵略的问题。单事务分支平均响应在2ms,一般3个服务器组成集群 足够支撑3w个TPS以上的分布式事务请求侵入性低 GTS对业务侵入低,业务代码最少的情况下只需要添加注解一个@TxcTransaction 声明事务就得了 事务与业务分离,将微服务从... 阅读详情

640?wx_fmt=png

全局事务服务(Global Transaction Service,简称 GTS)是阿里新推出的分布式事务处理方案,对其深入分析的资料相对匮乏。本文的目标是剖析GTS的技术路线,厘清其优势与约束。文章参考了GTS公开的专利、产品文档、相关网页,文章中肯定有不准确的地方,欢迎各位同学拍砖与指正。

一、GTS的目标

GTS是一个面向互联网交易场景的分布式事务解决方案。

制约分布式事务的三个因素

分布式事务是互联网交易场景面临的关键问题之一。不同于搜索、社交、联机分析应用,电子商务、支付是典型的交易场景,数据的错误会带来严重的后果,对数据的一致性与可用性有很高的要求。互联网环境带来了海量的数据容量、连接数与访问量,单一数据库节点无法应对,成为整个系统的瓶颈。为解决单一数据库成为瓶颈的问题,通过数据拆分实现数据库能力的线性扩展。数据拆分是使用分库分表的方式,将数据存储在多个数据库节点,利用分布式数据库平台解决数据库瓶颈的问题。分布式数据库环境中,一个事务会跨越多个数据库,面临分布式事务处理的问题。

分布式事务解决方案面临应用灵活性、数据一致性、性能三者的挑战。目前已有多种成熟方案,每种方案都是对这三个方面做出的取舍。

相互制约的三个因素为:

  • 应用灵活性:应用访问数据的方式是否需要修改,以及修改的程度。

  • 一致性:数据是强一致,还是最终一致的(允许中间不一致的状态)。

  • 系统性能:分布式事务对整体性能的影响。

现有分布式处理方案

现有成熟的分布式解决方案包括XA两阶段提交、可靠消息与TCC模式等类型。XA两阶段提交属于强一致事务,可靠消息与TCC模式属于柔性事务。

XA两阶段提交

XA 是指由 X/Open 组织提出的分布式事务处理的规范。XA规范主要定义了Transaction Manager(TM)和Resource Manager(RM)之间的接口,结构如下图所示。

640?wx_fmt=jpeg

XA协议的流程可大致分为三个步骤:

  • 步骤1:APP向TM创建全局事务,TM向APP返回全局事务号。

  • 步骤2:APP使用全局事务号,访问RM的资源(当RM为数据库时,资源访问就是SQL操作)。当RM第一次收到访问时,使用该全局事务号向TM注册,TM返回事务分支事务号。

  • 步骤3:APP向TM发出全局事务提交请求,TM与参与事务的RM通信,进行提交处理,全部完成后,向APP返回结果。

TM与RM之间的提交处理,采用两阶段提交协议。TM在第一阶段对所有的参与事务的RM请求“预备”操作,达成关于分布式事务一致性的共识。事务参与者必须完成所有的约束检查,并且确保后续提交或放弃时所需要的数据已持久化。在第二阶段,根据之前达到的提交或放弃的共识,请求所有参事务的RM完成相应的操作。

提交事务的过程中需要在多个资源节点之间进行协调,而各节点对锁资源的释放必须等到事务最终提交时,所以两阶段提交在执行同样的事务时会比一阶段提交消耗更多的时间。当事务并发量达到一定数量时,就会出现大量事务积压甚至出现死锁,系统性能和处理吞吐量就会严重下滑。

可靠消息

可靠消息的一种可能实现的结构如下图。

640?wx_fmt=jpeg

说明:

  • 业务处理服务在业务事务提交前,向实时消息服务请求发送消息,实时消息服务只记录消息数据,而不真正发送。

  • 业务处理服务在业务事务提交后,向实时消息服务确认发送。只有在得到确认发送指令后,实时消息服务才真正发送消息。

  • 业务处理服务在业务事务回滚后,向实时消息服务取消发送。

  • 消息状态确认系统定期找到未确认发送或回滚发送的消息,向业务处理服务询问消息状态,业务处理服务根据消息ID或消息内容确定该消息是否有效。

通过消息进行事务异步的方式,可以保证业务数据操作和消息的发送同时执行成功或失败,保持了事务的最终一致性。

采用可靠消息的方式,在两个事务间实现分布式事务时,可以很好地满足事务最终一致性以及事务的回滚,但如果一个事务上下文中超过两个事务操作后,需要开发人员实现整个事务流程的操作日志的记录、每个事务分支的回滚以及整个流程的准确调度。

TCC模式

TCC模式为全局事务执行提供了一个框架,开发人员只需要实现每个事务分支的回滚,不需要记录整个事务流程的操作日志。TCC模式结构如下图。

640?wx_fmt=jpeg

说明:

  • 一个完整的业务活动由一个主业务服务与若干从业务服务组成。

  • 主业务服务负责发起并完成整个业务活动。

  • 从业务服务提供TCC型业务操作。

  • 业务活动管理器控制业务活动的一致性,它登记业务活动中的操作,并在业务活动提交时确认所有的TCC型操作的confirm操作,在业务活动取消时调用所有TCC型操作的cancel操作。

TCC业务包括两个阶段完成:

  • 第一阶段:主业务服务分别调用所有从业务的 try 操作,并在活动管理器中登记所有从业务服务。当所有从业务服务的 try 操作都调用成功或者某个从业务服务的 try 操作失败,进入第二阶段。

  • 第二阶段:活动管理器根据第一阶段的执行结果来执行 confirm 或 cancel 操作。如果第一阶段所有 try 操作都成功,则活动管理器调用所有从业务活动的 confirm操作。否则调用所有从业务服务的 cancel 操作。

小结

可靠消息与TCC模式通过避免XA两阶段提交对数据资源的长期锁定提升了性能,通过在数据库外部实现事务机制达到了最终一致性,但牺牲了应用灵活性,需要开发人员实现事务检查与回滚的细节,面临着花费大量精力保证应用正确性的问题。

GTS目标是在性能开销可接受的情况下,由GTS统一处理全局事务的故障恢复与并发控制,对应用开发屏蔽事务处理的细节,从而提升应用的灵活性与数据的一致性。

二、GTS的技术路线

GTS采用基于XA架构优化的技术路线,在保留XA架构灵活性的优点下,通过将XA提交中的第一阶段与第二阶段解耦,将提交过程转换为第一阶段本地事务提交+第二阶段异步清理的方式,从而提供提升系统性能,同时通过在GTS内部维护应用级别的日志与锁信息,实现了全局事务的回滚与并发控制。

GTS方案认为XA性能低效的根本原因是采用了阻塞协议。在分布式事务提交的第一阶段等待最慢的一个事务分支完成,即使在不存在锁冲突的情况下,各事务分支的数据库连接依然会被挂起所占用的资源都不能够释放,以防止全局事务提交前释放资源所造成的数据不一致。对于业务流量极高的大规模互联网企业,难以接受 XA 两阶段提交协议所带来的巨大性能开销。

GTS架构包含的组件与XA完全相同,示意架构如下图。

640?wx_fmt=jpeg

GTS全局事务处理流程与XA一致,也包括全局事务注册、数据访问与全局事务提交三个步骤,但在第二步与第三步的内部处理上与XA不同:

  • 第二步数据访问中,各事务分支完成数据操作的同时,会将全局事务信息(锁与日志信息)存储在当前数据库的表中。

  • 第三步全局事务提交中,采用一阶段本地事务提交+二阶段异步清理的方式。首先对各数据库做本地事务的提交,并释放数据库连接等系统资源,然后,向TM发出全局事务提交请求,TM收到请求后,立即返回成功,TM后续实际工作是对各个数据库使用全局事务标识符进行全局事务信息的清理。

GTS与XA在全局事务的故障恢复处理与并发控制采用了不同的实现机制:

  • XA两阶段协议是基于数据库内核的日志与锁信息实现全局事务的回滚与并发控制。由于GTS一阶段本地事务提交中,会直接提交本地事务并释放连接,此时数据库内核的日志与锁表对全局事务不再有效。在第二步中,GTS会将日志和锁信息存储在表中,当事务本地提交后,日志和锁信息被持久化保存,用于实现全局事务的并发控制与故障恢复。

  • GTS的故障恢复只有UNDO操作没有REDO操作,日志表中存储了UNDO需要的信息,包括行记录标识、全局事务号、镜像查询语句、操作的前像与操作的后像。当发生故障时,对于已经本地提交的数据库,从UNDO表中找到修改的记录,记录的操作前像和操作后像,使用镜像查询语句从数据库中读取该记录的当前值。如果当前值与记录操作后像相同,则直接使用操作前像进行恢复,否则报警,进行人工处理。

  • GTS的全局锁表中存储了记录的加锁信息。封锁的粒度是行(记录),锁的类型包括共享锁和互斥锁,对于同一个记录,加锁的规则是共享锁与共享锁不冲突,共享锁与互斥锁冲突、互斥锁与互斥锁冲突。对插入(INSERT)、修改(UPDATE)、删除(DELETE)、更新模式的锁定查询(SELECT… FOR UPDATE) 操作加互斥锁。对于共享模式的锁定查询 (SELECT…LOCK IN SHARE MODE) 操作加共享锁。若没有锁冲突,在GTS锁表中,增加一行记录,表示加锁成功。

  • GTS的默认隔离级别为读未提交(脏数据),使用SELECT… FOR UPDATE和SELECT…LOCK IN SHARE MODE,可使查询隔离级别提升至读已提交。

三、GTS的架构与处理流程

架构

下图描述了GTS一种可能的实现架构。

640?wx_fmt=jpeg

与XA架构相同,GTS架构由应用、事务管理器、资源管理器三个部分组成。资源管理器由事务分支处理模块、镜像查询构造模块、并发控制模块、恢复控制模块,以及存储在数据库中的GTS事务信息(GTS锁表与GTS日志表)等组成。

  • 事务分支处理模块:是资源管理器的外部接口,并完成内部各模块的调用。

  • 镜像查询构造模块:从Insert、Update、Delete语句,生成该操作对应记录集的镜像查询语句。例如table_name表包含两个字段column1和column2,column1为主键,则镜像查询语句为select column1, column2 from table_name where column1=v1。

  • 并发控制模块:基于GTS事务锁表,维护读写并发控制。锁表定义如下:

640?wx_fmt=jpeg
  • 恢复控制模块:基于GTS日志表,进行故障恢复。 日志表定义如下:

640?wx_fmt=jpeg

主要流程序列图

分别描述了insert/delete/update操作、读已提交操作、提交操作和回滚操作等四个操作的序列图(一种可能的实现方式)。

insert/delete/update操作流程序列图

640?wx_fmt=jpeg

读已提交操作流程序列图

640?wx_fmt=jpeg

提交操作流程序列图

640?wx_fmt=jpeg

回滚操作流程序列图

640?wx_fmt=jpeg

阿里官方案例

GTS产品网站给出了一个交易类事务中最典型的[转账案例](GTS全局事务测试-单DRDS跨库事务-博客-云栖社区-阿里云)

  • A和B两个用户的数据分别位于一个DRDS实例的两个不同分库中,用50个进程并发进行 A转账给3,每个进程转账10次,每次转账金额在1到10之间随机生成,转账过程中模拟了3%的网络异常,使用GTS事务保证了A和B钱的总数不变。

  • 从代码上可看出,只需增加一条开启GTS的sql语句,就将单机事务应用提升至分布式事务,体现出很好的应用灵活性。测试中转账事务执行500次,成功490次,失败10次。转账结束10秒后,查询账户金额总数正确。

2017云栖大会 GTS产品介绍中,给出了使用GTS与不使用事务(1PC)[测试对比](破解世界性技术难题! GTS让分布式事务简单高效)。下图,GTS比1PC的性能损耗在10%,远远小于2PC方式,表现出优异的性能。

640?wx_fmt=jpeg

四、GTS的优势与约束

与基于消息队列与TCC补偿模式的分布式事务相比,在性能满足的情况下,GTS更好的应用灵活性与数据一致性:

  • 灵活性:数据库应用基本实现零修改,同时,基于XA模型,可方便的支持消息队列数据库等多种RM。

  • 数据一致性:GTS 的缺省事务隔离级别为读未提交,该模式下可以达到分布式事务的最大性能,但可能会读到脏数据。对于一致性要求高的应用,在性能允许的情况下,可以采用已提交读语句(for update、lock in share mode)将隔离级别提升至读已提交。

根据GTS实现机制的特点,其应用场景上有以下约束:加锁操作记录数量不能太大,操作冲突不能太多,加锁时间不能太长。违法以上约束时,GTS内部会占用过多资源、锁冲突和回滚增加,导致性能的下降。电商、物流、金融、零售行业中的核心交易场景有着高并发,高性能,单次操作数据集小,事务响应时间敏感的特点,GTS类方案在此类场景中有着广泛和良好的应用前景。

点击「阅读原文」,给本文作者点赞!

640?wx_fmt=png

微服务架构下分布式事务解决方案——阿里云GTS 1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,... 阅读详情

相关推荐

分布式事务 GTS 的价值和原理浅析

GTS 今年双 11 的成绩 今年 2684 亿的背后,有一个默默支撑,低调到几乎被遗忘的中间件云产品——GTS(全局事务服务,Global Transaction Service),稳稳地通过了自 2014 年诞生以来的第 5 次“大考”。 2019 年 11 月 1 日至 12 日,GTS 日均处理分布式事务数量达亿级,每天峰值 TPS 达万级。 这背后最重要意义在于:成绩是...

阿里云云栖号 1522

GTS解密--GTS的原理、架构与特点

作者 赵成 日期 2018-01-01 标签 分布式事务 , GTS , Global Transaction Service, 柔性事务, TCC , XA两阶段提交协议 全局事务服务(Global Transaction Service,简称 GTS)是阿里新推出的分布式事务处理方案,对其深入分析的资料相对匮乏。本文的目标是剖析GTS的技术路线,厘...

weixin_34040079的博客 1414

GTS分布式事务全新解决方案.pdf

阿里巴巴中间件技术专家 厉启鹏(寈峰)在2018云栖大会·武汉峰会中做了题为《GTS-分布式事务全新解决方案》的分享,就产品简介、功能架构、典型场景及实践操作等方面的内容做了深入的分析。

全局事务服务 GTS

全局事务服务 GTS

19.2.04.157N的博客 1272

OCC WebGL案例编译实战:从FreeType配置到静态库生成

本文详细记录了将OCC(Open CASCADE Technology)3D图形库编译为WebAssembly(Wasm)并在浏览器中通过WebGL渲染的实战过程。重点解决了FreeType库的交叉编译配置、OCC核心库的裁剪与静态库生成,以及WebGL样例项目的CMake改造等关键步骤,为开发者提供了从环境搭建到最终集成的完整指南。

weixin_28831461的博客 317

统信UOS系统盘空间不足?5分钟搞定扩容的图形化解决方案

本文提供统信UOS系统盘空间不足的图形化扩容解决方案,使用GParted分区编辑器在不丢失数据的情况下快速完成扩容。详细步骤包括准备工作、空间调整和执行验证,适合技术用户快速解决问题。

d6e7f8的博客 959

阿里分布式事务框架GTS开源了!

转载请标明出处: https://www.fangzhipeng.com 本文出自方志朋的博客 就在昨天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动。在微服务系统中,分布式事务一直是痛点,也是难点。社区里也有一些开源的分布式解决方案的框架,比如ByteTCC、LCN,但是这些框架没有一个权威的组织在维护,或多或少大家都有点不敢用。阿里开源的分布式事务...

方志朋的专栏 2万+

HI3516CV610海思SOC:超高清智慧视觉开发全攻略

本文全面解析海思HI3516CV610 SOC在超高清智慧视觉开发中的应用。该芯片集成双核A7处理器、1Tops NPU、AI ISP及4K视频编码器,专为智能摄像头设计。文章详细介绍了开发环境搭建、核心硬件架构、媒体处理平台(MPP)实战、AI算法集成与系统调优等全流程攻略,帮助开发者高效构建稳定可靠的视觉AI产品。

weixin_29269441的博客 1257

阿里分布式事务框架GTS(Seata)开源啦!

文章来源:https://www.oschina.net/p/fescar 就在9号这天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动!在微服务系统中,分布式事务一直是痛点,也是难点。社区里也有一些开源的分布式解决方案的框架,比如ByteTCC、LCN,但是这些框架没有一个权威的组织在维护,或多或少大家都有点不敢用。阿里开源的分布式事务解决框架Fes...

徐刘根的博客 2万+

3.1使用Python读取excel的二维数据

要使用 Python 读取 Excel 的二维数据,可以使用 openpyxl 或 pandas 库。

kenshin1980的专栏 1032

【AI智能体】Claude Code +Superpowers 项目实战操作详解

Claude Code +Superpowers 项目实战操作详解

congge 4055

GTS来了!阿里微服务架构下的分布式事务解决方案

阿里妹导读:分布式事务已经成为微服务落地最大的阻碍,也是非常具有挑战性的一个技术难题。 为此,今天我们邀请阿里高级技术专家于皋,和大家深入探讨微服务架构下,分布式事务的各种解决方案,并重点为大家解读阿里巴巴提出的分布式事务解决方案----GTS(Global Transaction Service)。1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度

阿里技术 7584

2025国赛数学建模A题 完整Python代码 烟幕干扰弹的投放策略

常量定义G = 9.8 # 重力加速度 m/s²V_SMOKE_SINK = 3 # 烟幕下沉速度 m/sMISSILE_SPEED = 300 # 导弹速度 m/sEFFECTIVE_RADIUS = 10 # 有效遮蔽半径 mEFFECTIVE_DURATION = 20 # 有效遮蔽时间 sTARGET_POS = np.array([0, 200, 0]) # 目标位置FALSE_TARGET_POS = np.array([0, 0, 0]) # 假目标位置# 初始位置。

YOLO 1106

阿里微服务架构的分布式事务GTS

阿里云现在已经提供云上统一的分布式事务解决方案,相对于我们以前自己尝试去通过消息结合最终一致性去解决这个问题,这样统一的解决方案仍然值得借鉴和尝试。我觉得如果系统上了阿里云,可以选择这套框架来使用,对中小企业是一种解放,将更多的精力放到业务中去。现把相关的介绍转载记录如下: 背景 全局事务服务GTS上个月开始在阿里云上公测,上周我们也发表了一篇「破解世界性技术难题!GTS让分布式事务简单高效」的文...

猎人在吃肉 1855

【开发必备插件】iframe嵌套报“拒绝连接请求”的本地解决方法

关键词:iframe 拒绝连接、X-Frame-Options、Chrome 插件、前端调试、Allow X-Frame-Options前几天我在本地项目里调试一个第三方网站的嵌入页面时,遇到了一个非常经典的报错:xxx.com 拒绝了我们的连接请求。熟悉的老前端们一眼就知道——这是。但对于日常开发来说,我们经常需要在本地测试 iframe 嵌套外部页面(比如嵌第三方登录页、支付页、可视化报表系统等)。而线上站点配置了或DENY时,就会直接导致 iframe 加载失败。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1545

EAAI title-page-template 怎么填写: 期刊投稿作者信息填写指南

本文详细介绍了期刊投稿时作者信息填写的规范要求。主要内容包括:1)核心填写原则(信息一致性、标注清晰性、通讯作者唯一性);2)具体填写方法演示(作者姓名、单位/机构、通讯作者);3)常见错误规避指南(如单位上标错误、邮箱无效等);4)提供可直接套用的规范模板。特别强调作者姓名拼写、单位标注、通讯作者指定等关键细节,并以深圳大学和同济大学研究团队为例进行说明,帮助投稿者避免因格式问题被退回修改。

ZhangJiqun&191cm&85kg 1095

分布式事务发展和阿里的GTS分布式事务框架

通过GTS,可以在公网环境轻松保证分布式系统下的数据一致性。 1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比较著名的有Dubbo、Spri...

孤刺 551

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

阿里GTS解密--GTS的原理、架构与特点

摘要: 全局事务服务(Global Transaction Service,简称 GTS)是阿里新推出的分布式事务处理方案,对其深入分析的资料相对匮乏。本文的目标是剖析GTS的技术路线,厘清其优势与约束。 作者 赵成 日期 2018-01-01 标签 分布式事务 , GTS , Global Transaction Service, 柔性事务, TCC , XA两阶段提交协议 全局事...

GarfieldEr007的专栏 4571

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

分布式事务解决方案——阿里GTS

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比...

mnhpo_Q的博客 375

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

微服务架构下分布式事务解决方案——阿里GTS

微服务架构下分布式事务解决方案——阿里GTS 今天主要讲解阿里的GTS分布式事务的使用。这里以阿里云上的demo为例讲解。demo案例的描述有一些问题。这篇文章主要针对案例里的问题做讲解。还有案例的运行流程做讲解 sample-txc-simple:最简的 GTS 样例工程 该工程给出了一个最少依赖的 GTS 案例,GTS 使用入门必看。您可以基于 sample-txc-simple 样例工程,...

qq_29197231的博客 1789

微服务架构下分布式事务解决方案 —— 阿里GTS

摘要: 本文将深入和大家探讨微服务架构下,分布式事务的各种解决方案,并重点为大家解读阿里巴巴提出的分布式事务解决方案----GTS。该方案中提到的GTS是全新一代解决微服务问题的分布式事务互联网中间件。原文地址:https://yq.aliyun.com/articles/542020 1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、...

maoreyou的博客 698
上一篇: 鸿篇巨制 —— LevelDB 的整体架构
下一篇: BAT 经典算法笔试题 —— 逆转单向链表
码洞
博客等级 码龄10年 41粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值