中间件

蚂蚁分布式中间件的产品发展路径,一直秉承着引领和拥抱业界先进标准和实践的理念,同时亦能满足传统金融架构的平滑迁移和融合适配,以稳妥应对业务升级变更,并积极应对金融交易系统所面临的服务和数据扩展性、事务一致性、秒级容灾、弹性供给与调度等关键技术的挑战。

双模微服务

微服务平台(SOFAStack Microservice Platform)通过微服务(SOFAStack Microservice,简称 SOFAStack MS)和服务网格(SOFAStack Mesh),提供了既支持 SOFA 框架又支持 Service Mesh 架构的微服务管理和治理能力。

  • 微服务:提供了 SOFA 框架的微服务,包含 RPC 服务、动态配置、限流熔断。

  • 服务网格:通过 Service Mesh 技术支持原生 Dubbo 、Spring Cloud、SOFA 框架,无侵入地提供了对 Dubbo、Spring Cloud、SOFA 应用的服务管理和治理能力。

产品架构7651DC~1

产品优势

  • 高性能分布式服务框架

    提供高性能和透明化的 RPC 远程服务调用,具有高可伸缩性、高容错性的特点。

  • 微服务治理中心

    提供一系列的服务治理策略,保障服务高质量运行,最终达到对外承诺的服务质量等级协议。

  • 高可靠的轻量级配置中心

    提供应用运行时动态修改配置的服务,并提供图形化的集中化管理界面。

  • 多活数据中心

    支持同城双活/异地多活架构,具备异地容灾能力,保障系统的可用性。

应用场景

传统应用微服务改造

通过微服务产品将传统金融业务系统拆分为模块化、标准化、松耦合、可插拔、可扩展的微服务架构,可缩短产品面世周期,快速上架,抢占市场待机;不仅可确保客户服务的效率,也降低了运营成本。

高并发业务快速扩展

通过微服务产品开发互联网金融业务,可提高研发效率,更灵活地响应业务变化,快速迭代创新产品;并针对热点模块进行快速扩展来提高处理能力,轻松应对突发流量,同时提高用户体验,为更多小微客户提供个性化的金融产品和交易成本较低的便捷金融服务。

多数据中心异地多活

通过微服务产品可快速构建可扩展、高性能的金融级分布式核心系统,拥有弹性扩容和异地多活的能力。

分布式链路跟踪

分布式链路跟踪(Distributed System Tracing,简称 DST)是一款面向分布式架构、微服务架构和云原生架构的应用可观察性的金融级解决方案,帮助用户厘清应用间复杂的调用关系,迅速定位故障或者缓慢节点。

产品架构

1EC884~1

产品优势

  • 分布式跨应用追踪

    追踪每个交易的完整链路,按不同服务(应用)接口建立调用时间序列,收集链路上每个服务的性能数据,按服务追踪交易性能问题。

  • 多维度链路查询

    根据 Trace ID 按不同条件(错误、超时等)检索调用链,分析链路信息,查询各场景下的调用链集合。

  • 多视角链路展示

    提供链路图、链路详情、时序图、时间轴等,全方位可视化地展示系统性能。

  • 业务日志关联查询

    自定义配置应用系统的业务日志,自动关联业务报错和摘要信息,快速定位问题及跟踪业务信息。

应用场景

问题的分析和快速定位

在分布式场景下,服务调用错综复杂,问题分析与定位非常困难。分布式链路跟踪系统能迅速定位到有问题的服务,协助快速解决问题。

  • 查看完整的应用调用拓扑关系:自动发现该服务之前的调用以及对所有中间件的调用,绘制整个系统的完整调用拓扑关系。

  • 快速定位不健康应用:在调用关系拓扑中,对不健康应用进行显示标识,便于快速发现有问题应用并进行分析。

  • 分析服务性能:调用拓扑中的应用都可以单独进行下钻分析,可以从吞吐、错误率、响应时间等指标对应用性能进行详细分析。

应用性能和架构的优化

在调用关系拓扑中能对各个应用的调用次数和耗时情况进行查看和分析,找到负载较高和负载较少的应用,对资源进行一个合理的利用。

  • 汇总聚合调用链路:所有的调用信息会被聚合汇总,方便对各个应用的调用情况和响应情况进行分析。

  • 定位关键路径:快速发现整个系统调用拓扑中的关键应用路径。

  • 优化不合理调用:及时发现某些不合理的调用并进行处理,如频繁进行数据库操作等。

消息队列

SOFAStack 消息队列是基于 Apache RocketMQ 构建的分布式消息中间件,为分布式应用提供异步解耦和削峰填谷的能力,支持多种消息类型,提供高可靠、高吞吐量、高可用、事务一致性的异步通讯能力。

产品架构Image 52

产品优势

  • 开箱即用

    多种消息类型:事务消息、定时消息、顺序消息。

    多种订阅模式:Pub/Sub、Tag 过滤、集群消费、广播消费。

    多协议多语言:TCP/HTTP 协议,多语言客户端 SDK。

  • 便捷运维

    可运维:消息回溯、死信队列、监控告警。

    易诊断:多维度查询、全链路消息轨迹。

    高安全:多租户资源隔离、实例限流、主子账号授权。

  • 高性能

    低延迟:毫秒级端到端延迟。

    抗堆积:海量消息堆积能力。

    高吞吐:千万级高并发处理能力。

    可扩展:可根据业务需求弹性伸缩。

  • 高可用

    高可用:99.9% 服务可用性。

    高可靠:99.99999% 数据可靠性。

    同步机制、重试机制、数据持久化。

应用场景

异步解耦

通过生产消费模型解耦上下游业务系统,可提升业务连续性。上游应用作为生产方,将比较耗时且不需要即时(同步)返回结果的操作作为消息放入消息队列;下游应用作为消费者进行消息订阅和消费。只要保证消息格式不变,消息的发送方和接收方并不需要直接连接,任何一方的系统故障都不会对其他应用产生影响。

削峰填谷

在业务高峰期,如秒杀或团队抢购活动中,用户请求量大,流量暴增,某些业务系统可能无法承受。引入消息队列后,利用消息队列的抗堆积能力,这些业务系统作为消息的消费方,可以根据自身应用的能力进行消息的消费,不受大流量的影响。

分布式事务的数据一致性

应用解耦后还需要确保数据的最终一致性,利用消息队列事务消息和消息的可靠传递机制,可以在实现系统解耦的同时,保证最终的数据一致性。

任务调度

任务调度(Task Scheduler,简称 TS)提供分布式任务调度框架,实现任务的分布式处理,并能规范化、自动化、可视化和集中化地对金融企业不同业务系统的任务进行统一的调度和全方位的监控运维管理。

产品架构Image 79

产品优势

  • 支持集群任务

    支持对数据进行自定义维度的分片,不限制拆分层数,因此可以充分利用集群的所有机器;当数据量较大时,多层调度任务可以更快地处理完数据,同时支持简单单机任务的运行。

  • 支持任务的图形化依赖编排

    将多个任务按执行顺序编排成一张拓扑图,自动执行,无需人工干预,从而保证大量任务调度的快速高效的完成。

  • 丰富的任务配置项

    提供丰富的任务配置项,包括多种路由策略、多种失败重试模式、多种漏触发处理策略,并支持在线配置调度任务入参。

  • 灵活的触发控制

    支持任务通过定时触发、周期性触发、事件触发和人工手动触发。

应用场景

金融行业的批处理

该场景需要在规定时间内处理完指定的数据。传统的处理方式是根据数据库分片来处理,每台机器处理一个数据分片。这种方式的缺点就是当业务集群的机器数量大于分片数时,很多机器处于闲置状态,资源利用率低。集群任务允许用户自己对数据进行拆分,将待处理数据拆分成一个个索引块,业务集群中的每台机器都会分配到数据进行处理,使用灵活,并可以监控任务的执行情况。

金融行业的日切

金融行业的日切是一个很复杂的操作,需要多个任务按照指定顺序协同工作才可以完成。传统实现方式是在系统代码里指定任务的执行顺序,当业务发生变化时需要修改代码才可以正常工作,可维护性很差。使用 SOFAStack 任务调度中的任务编排功能,可以轻松完成任务之间的依赖调整,大大提高了可维护性,并可以直观地看到任务的执行情况。

API 网关

API 网关(API Gateway)是一个 API 管理平台,帮助企业统一管理对内外开放的 API ,为网络隔离的系统间提供高性能、高安全性、高可靠性的通信,同时保障内部系统的安全性;用于满足企业对外部合作伙伴开放业务、企业自身混合云互通、企业内网异构应用集成的需求,帮助客户更好的进行场景和业务的创新。

产品架构39BB07~1

产品优势

  • 跨云/跨域互通

    支持对混合云和多业务域之间的网络互通,实现 API 的统一管理。

  • 弱网优化

    针对移动端的特性,优化弱网下的数据传输通信协议,提高网络通信质量和效率。

  • 异构集成

    支持不同语言和不同技术栈实现的业务系统之间进行无缝集成。

  • 多种客户端接入支持

    支持移动端(iOS,Android),也支持非移动端小程序(H5,Web,后端应用)。

  • 端到端全链路跟踪

    支持从客户端发起的请求到后端服务所有节点的端到端的链路跟踪。

  • 超强的安全能力

    支持多种身份校验和数据加密方式(例如 CORS、SSL),以保障数据传输的安全性。

应用场景

前后端分离场景

  • 统一接入标准:通过 API 网关向客户端提供统一协议的 API,允许 IT 团队选择最适合内部架构的技术栈。

  • 后端异构集成:屏蔽客户端与服务端差异,在不影响外部绑定客户端的情况下重构服务。

  • 降低业务代码复杂性:减少客户端与服务端的直接调用,流量控制、负载均衡等不需要重复实现。

  • 提高研发效率:模拟或虚拟化服务,以验证设计要求或协助集成测试,提高研发效率。

异构系统集成场景

  • 统一集成:降低企业内部系统集成成本,无缝连接不同的软件应用程序。

  • 遗留系统兼容: 选择最适合技术栈,在转型过程中兼容遗留系统,加速企业转型升级。

  • 集中管理:集中访问所有数据,提高研发效率。

混合云场景

  • API 全生命周期管理:云间网络互通的基础上提供 API 全生命周期管理,避免所有 API 都对外暴露,提高安全性。

  • 高性能跨云 RPC 调用:支持跨云的场景下的 RPC 调用,使用方式同云内调用。

  • 超强安全保障能力:提供多种安全能力确保访问的合法性以及数据安全性。

数据访问代理

数据访问代理(Open Database Proxy,简称 ODP)能够解决海量请求下的数据访问瓶颈和数据库的容灾问题,提供水平拆分、平滑扩缩容、读写分离的在线分布式数据库服务,为海量数据访问提供低消耗、高性能、高可用的轻量级解决方案。

产品架构

E3DFC7~1

产品优势

  • 分库分表

    支持 RDS/OceanBase/MySQL 的分库分表。在创建分布式数据库后,只需选择拆分键,数据访问代理就可以按照拆分键生成拆分规则,实现数据水平拆分。

  • 透明读写分离

    通过使用数据访问代理的只读实例或 MySQL 备机实现读写分离,帮助应用解决事务、只读实例或者备机失效、指定主备访问等细节问题。对应用无侵入,在数据访问代理控制台即可完成读写分离相关操作。

  • 数据存储平滑扩容

    当出现数据存储容量和访问量瓶颈时,数据访问代理支持在线存储容量扩展;扩容无需应用改造,扩容进度支持可视化跟踪。

  • 服务升降配

    数据访问代理实例可以通过改变资源数量实现服务能力的弹性扩展。

  • 全局唯一数字序列

    数据访问代理支持分布式全局唯一且有序递增的数字序列,满足业务在使用分布式数据库下对主键或唯一键以及特定场景的需求。

  • 数据库账号权限体系

    数据访问代理支持类单机 MySQL 账号和权限体系,确保不同角色使用的账号操作安全。

  • 分布式事务支持

    数据访问代理结合中间件分布式事务套件,可以支持分布式事务,保证分布式数据库数据一致性。

应用场景

海量数据读写

提供灵活的数据拆分机制,代码侵入性低,可以非常方便地实现数据的水平拆分与扩容,从而解决数据库单机瓶颈的问题。

金融级数据容灾

基于蚂蚁集团内部多年的金融级数据容灾场景,针对不同业务场景提供了多种机房级数据容灾解决方案,保障数据的稳定性与业务的连续性。

数据库流量分配

提供了基于规则的流量分发机制,通过部署多个数据库实例(如一写多读)的方式来满足大量查询业务的需求。

分布式事务

分布式事务(Distributed Transaction-eXtended,简称 DTX)是一款金融级分布式事务中间件,用来保障在大规模分布式环境下业务活动的最终一致性。在蚂蚁集团内部被广泛地应用于交易、转账、红包等核心资金链路,服务于亿级用户的资金操作。分布式事务可以与服务框架(如 SOFABoot、Spring Cloud、Dubbo)、数据源(如数据访问代理 ODP、RDS、MySQL、OceanBase)、以及消息队列等中间件产品配合使用,轻松实现服务链路级事务、跨库事务和消息事务等各种组合。

产品架构Image 72

产品优势

  • 支持多种接入模式

    SOFAStack 分布式事务随着业务的多样性发展而演变沉淀了多种接入模式,针对科技金融下多种业务场景灵活适配。

    • TCC 模式:TCC(Try-Confirm-Cancel)是一种高性能的分布式事务接入方案,该模式提供了更多的灵活性,几乎可满足任何您能想到的事务场景。TCC 模式提供自定义补偿型事务、自定义资源预留型事务、消息事务等场景,用户可以介入两阶段提交的过程,以达到特殊场景下的自定义优化及特殊功能的实现。

    • FMT 模式:为了解决 TCC 模式的易用性问题,分布式事务推出了框架管理事务模式(Framework-Managed Transactions,简称 FMT)。FMT 是一种无侵入的分布式事务解决方案,该模式解决了分布式事务的易用性问题,最大的特点是易于使用、快速接入以及对业务代码无侵入。

    • Saga 模式:Saga 是一种补偿协议,在 Saga 模式下,分布式事务内有多个参与者,每一个参与者都是一个冲正补偿服务,需要用户根据业务场景实现其正向操作和逆向回滚操作。

  • 金融级品质的保障

    • 金融级容灾保障:提供同城以及异地等多种模式以及多种级别的容灾能力,以业界最高规格的标准来保障客户业务的连续性。

    • 无与伦比的性能:相比传统二阶段模式,减少持有锁时间,大幅提升性能。特有的性能推进模式(Performance Bursting Mode)可以大幅提升吞吐量,曾在 2019 年双十一活动中支撑 54.4 万笔/秒的交易操作。

    • 使用简洁易于接入:蚂蚁金融科技(蚂蚁集团)多年沉淀的实操经验使产品具备了快速灵活的接入能力,易于使用与运维。

    • 兼容性保障:分布式事务是一个抽象的基于 Service 层的概念,与底层事务实现无关,也就是说在分布式事务的范围内,无论是关系型数据库 MySQL、Oracle,还是 KV 存储 MemCache,或是列存数据库 HBase,只要将对它们的操作包装成分布式事务的参与者,就可以接入到分布式事务中。

应用场景

支付与转账

金融行业常见的支付、转账、账务等业务场景对于吞吐量有很高的要求。SOFAStack 分布式事务在各类大促中的优异表现证明了性能不会成为瓶颈。

财富理财

这类场景中往往涉及的金额较大,所以对于产品的稳定性要求非常高。SOFAStack 分布式事务拥有金融级的品质,可为业务的持续性与稳定性保驾护航。

保险与监管报送

参与方多、业务复杂度高是该类业务的典型特征。SOFAStack 分布式事务历经十多年的演进历程,足以灵活应对各种场景,满足事务一致性要求,保证与各类业务完美结合。