基金002292Boss基金基于火箭MQ的互联网开放平台矩阵架构实践

凭借这两年的抢眼表现,公募基金迎来了乘风破浪的发展。截至2021年1月底,资产管理规模已超过20万亿元,创历史新高。
在中国新经济高质量和科技创新的背景下,许多金融互联网平台与基金公司进行了合作。
互联网金融技术与传统金融业务的融合,使得传统金融公司的信息技术系统更加开放。
相应地,2020年,博世拉基金互联网财务部开始建设互联网开放平台Matrix。
Bosera基金互联网开放平台矩阵建设背景和目标1。传统金融架构遇到的问题和挑战
传统的金融体系架构受到了互联网的挑战,主要表现在以下几个方面:
1)对互联网门户缺乏控制
有很多团队提供不同形式的互联网服务,接口协议和权限控制方法不一致。
当服务和接口越来越多的时候,API控制能力不足的问题就会凸显出来。
2)系统相对封闭,开放能力不足
传统基金行业系统生态相对封闭,与合作伙伴开放生态的能力有待提高。
3)财务场景打包能力不足
传统的基金行业系统通常依赖底层数据库提供的ACID特性来实现交易一致性。
微服之后,这个机制似乎是为了金融场景产品的包装能力而延伸出来的。
2.系统建设目标
1)多渠道统一安全接入
为自己的系统和运营商提供标准化统一的访问,实现内外API的统一管理和控制。
Matrix对通过Bosera互联网平台资质认证的第三方平台开放,根据第三方平台识别的不同身份需要接口级权限控制。
2)提供开放能力
搭建一个开放的平台,和合作伙伴一起构建一个开放的生态。
经Matrix平台授权后,第三方平台开发者可通过调用Bosera基金互联网开放平台的接口能力,为第三方平台提供基金产品信息查询、注册开户、积分赎回、基金赎回、资产查询、联合登录等全方位服务;第三方平台可以根据自身实际情况自由选择或组合APP、微信微信官方账号、微信小程序、H5等前端方式。
3)封装基金行业的特色功能
应用层实现分布式事务框架,保证整个事务的一致性。
基于此,将优惠购买、投资陪伴等复杂的金融场景功能打包,让开发商专注于业务发展,提升客户投资体验。
矩阵构造思路1。总体框架
1)互联网架构图基于Spring Cloud微服务套件和RocketMQ消息中间件,是企业级云原生架构。
2.关键组件
1)API网关
API网关是微服务架构的重要组成部分之一,是服务的唯一入口。
API网关封装了内部系统架构,横向去除了常用功能,如权限验证、熔丝限流、负载均衡等。
通过API网关,可以统一控制内部API。
目前博世拉基金的互联网服务接入门户主要分为三类:
博塞拉基金移动应用和H5自营业务。
面向直销前端合作伙伴的OpenAPI。
也就是说,作为开放平台的入口,服务的OpenAPI会提供有条件的访问限制,需要考虑流量控制、安全认证和接口授权的管理。
企业内部管理系统的应用编程接口,提供对企业内部系统的访问。
Matrix的API网关建立在Spring Cloud Gateway的基础上,SCG内置的Route、Predicate、Filter模块可以方便的扩展路由转发、统一认证等跨部门功能。
基于内外网隔离的要求,我们独立部署了两套网关,其中麒麟网关提供互联网
统一认证中心是微服务架构的重要组成部分。
Matrix搭建了基于OAuth2协议的统一认证中心,实现用户、应用、界面的统一认证和认证。
OAuth2的核心思想是通过各种认证手段对用户的身份进行认证,并颁发一个token,使第三方应用程序可以在有限的时间和范围内使用该Token访问指定的资源。
Matrix支持三种授权类型的OAuth2:授权代码、资源所有者凭据和客户端凭据。根据不同的应用场景,使用不同的授权类型来发布令牌,以保护开放平台的安全性。
3)火箭消息中间件
技术选择
在技术选择过程中,我们主要考虑以下几点:
首先必须是国内产品,其次是在社区中流行且高度活跃的开源产品。
此外,关注MQ特性:
消息传递是可靠的,也就是说,消息保证不会丢失。
分布式事务,需要支持分布式事务,减少
业务的复杂性。性能,我们的场景主要是在线的金融类业务,需要 MQ 具备支持金融级的低延迟特性。
最后,从架构演进的角度来考虑,需要无缝对接我们的混合云架构,最终我们选择了 RocketMQ。
RocketMQ 是阿里巴巴自主研发及双 11 交易核心链路消息产品,提供金融级高可靠消息服务。
在开源方面,开源 RocketMQ 已经完成了云原生技术栈的集成,包括Knative 中的事件源,Prometheus 的 Exporter,K8s 的 Operator 等;也支持了微服务框架 SpringCloud 以及函数计算框架 OpenWhisk ;同时开发了很多 Connector 作为 Sink 或者 Source 去连接了 ELK、Flume、Flink、Hadoop 等大数据和数据分析领域的优秀开源产品。
在 Matrix 开放平台,RocketMQ 主要有三类应用场景。1) 用于金融产品的场景化包装
业务场景:
典型的业务场景如优惠购,基民通过优惠购功能申购基金,可将交易费率降为0。
简单来说就是先购买博时货币基金,再通过快速转购的方式买入目标基金,豁免相关转换费率。
实现原理:
Matrix 基于 RocketMQ 的事务消息搭建了一个高可靠、高可用的事务消息平台---事务中心,涉及业务流程如下:
第一阶段是 Prepare ,即业务系统将 RocketMQ 的半事务消息发送到事务中心,事务中心不做发布,等待二次确认。
Prepare 完成之后,业务系统执行主事务,即购买货币基金,成功后 commit 到事务中心,由事务中心投递消息到从事务。
如果主事务失败,就投递 rollback 给事务中心。
反查机制:
由于网络抖动、业务系统重启等原因,可能导致事务消息的二次确认丢失。
此时需要依赖反查机制恢复整个分布式事务的上下文。
RocketMQ 提供的 Message Status Check 机制正是为解决分布式事务中的超时问题而设计的。
事务中心的反查机制流程主要是,先检查事务中心的内部状态,再通过反查接口检查本地事务的执行结果,恢复事务上下文后,正常推进后续的流程。
依赖于 RocketMQ 提供的事务消息,事务中心在应用层实现了分布式事务,大大提升了对金融产品的场景化包装能力。
2) 用于系统间解耦
业务场景:
部门 A 负责根据市场、产品和客户的陪伴场景输出优质的陪伴内容,部门 B 负责把这些陪伴内容触达到不同的渠道和用户。
实现原理:
部门 A 的陪伴事件触发服务和部门 B 的陪伴触达服务之间通过 RocketMQ 消息进行业务解耦,即双方没有依赖关系,也不必同时在线。
3) 异步调用
业务场景:
异步调用的使用场景比较多,如用户注册、用户关键行为跟踪等。
其中用户行为跟踪场景,在服务端异步记录用户的关键行为及相关属性,可为用户分等级运营和精准营销打下基础。
实现原理:
将非核心的业务流程异步化可以减少系统的响应时间,提高吞吐量,是系统优化的常用手段。
RocketMQ 提供了高效的通信机制,业务系统使用起来非常方便。
总结与未来展望随着互联网技术在金融领域的不断渗透和金融创新业态的发展,公募基金互联网业务需要不断进行流程改造、模式创新及服务能力升级,在优化场景体验的基础上,持续打造基于平台、场景和产品三位一体的互联网服务平台。
Matrix 经过一年多的建设,目前已具备多渠道统一接入、第三方生态互联互通、基金特色交易场景化封装等功能特性。
Matrix 通过建设有品质、有温度的陪伴,从技术上和体验上,让用户理解风险,理解投资,进而为客户持续创造价值。
在未来,将会有更多的合作伙伴接入 Matrix ,希望我们能一起畅游在创新科技的星辰大海中,合作共赢。
作者|伍振河 博时基金互联网金融部架构师 、曾志 博时基金互联网金融部开发主管
本文为阿里云原创内容,未经允许不得转载。
今日基金资讯基金002292博时基金基于 RocketMQ 的互联网开放平台 Matrix 架构实践:基金网提供专业、及时、全面的基金行业动态、基金数据、基金净值、基金002292、基金评级和交易。