简介:Matrix 通过一年多的建设,目前已具备多渠道对立接入、第三方生态互联互通、基金特色交易场景化封装等性能个性。Matrix 通过建设有品质、有温度的陪伴,从技术上和体验上,让用户了解危险,了解投资,进而为客户继续发明价值。
作者|伍振河 博时基金互联网金融部架构师、曾志 博时基金互联网金融部开发主管
随着近两年业绩的抢眼,公募基金迎来了乘风破浪式的倒退,截至 2021 年 1 月底,资产治理规模已破 20 万亿,创下了历史新高。
在中国新经济高质量及科技翻新倒退的背景下,泛滥金融类的互联网平台与基金公司开展单干。互联网金融科技与传统金融业务的交融,促使传统金融公司的信息技术零碎更加凋谢。
据此,2020 年,博时基金互联网金融部启动了互联网开放平台 Matrix 的建设工作。
博时基金互联网开放平台 Matrix 建设背景与指标
1、传统金融架构遇到的问题与挑战
传统的金融零碎架构受到了互联网化的挑战,次要体现在以下几个方面:
1) 互联网入口不足管控
有多个团队提供不同模式的互联网服务,接口协议和权限管控形式不统一。当服务和接口越来越多时,API 管控能力有余的问题将会突显。
2) 零碎较为关闭,凋谢能力有余
传统基金行业零碎生态较为关闭,与合作伙伴凋谢生态的能力有待晋升。
3) 金融场景化封装能力有余
传统基金行业零碎广泛依赖于底层数据库提供的 ACID 个性实现事务一致性。微服务化之后,这套机制对金融场景化的产品包装能力显得顾此失彼。
2、零碎建设指标
1)多渠道对立平安接入
为自有零碎与经营厂商提供标准化对立接入,实现内外部 API 对立的管控。
Matrix 凋谢给通过博时互联网平台资质认证后的第三方平台应用,须要依据第三方平台辨认的不同身份,进行接口级别权限管控。
2)提供凋谢能力
搭建开放平台,与合作伙伴共建凋谢生态。在失去 Matrix 平台的受权后,第三方平台开发者能够通过调用博时基金互联网开放平台的接口能力,为第三方平台提供基金产品信息查问、注册开户、积分兑换、基金申赎、资产查问、联结登录等全方位服务;第三方平台能够依据本身理论状况自由选择或组合 APP、微信公众号、微信小程序、H5 等前端形式对接。
3)封装基金行业特色性能
应用层实现分布式事务框架以保障整体事务的一致性。基于此,封装优惠购、投资陪伴等简单的金融场景化性能,让开发者专一于业务开发,晋升客户的投资体验。
Matrix 建设思路
1、总体架构
1)互联网架构图
基于 Spring Cloud 微服务套件和 RocketMQ 消息中间件,搭建的企业级云原生架构。
2、要害组件
1)API 网关
API 网关是微服务架构重要组件之一,是服务惟一入口。API 网关封装外部零碎架构,横向抽离通用性能,如:权限校验、熔断限流、负载平衡等。通过 API 网关能够把外部 API 对立管控起来。
目前博时基金的互联网业务接入入口次要分为 3 类:
- 面向自营业务的博时基金挪动端 APP 和 H5。
- 面向合作伙伴的 OpenAPI。即作为开放平台的入口,服务的 OpenAPI 会提供有条件的拜访限度(工夫、流量、频率),须要思考流量管制、平安认证、接口受权方面的治理。
- 面向企业外部管理系统的 API,提供企业外部零碎拜访。
Matrix 的 API 网关基于 Spring Cloud Gateway 构建,SCG 内置的 Route、Predicate 和 Filter 模块能够不便扩大前途由转发、对立鉴权等跨横切面的性能。基于内外部网络隔离的需要,咱们独立部署了两套网关,其中 Kylin 网关提供互联网接入。Phoenix 网关用于域内零碎接入,提供域账户的拜访权限管制。
2)认证核心
为了爱护 OpenAPI 的平安,防止歹意拜访、未受权拜访、黑客攻击等导致的安全隐患,开放平台须要减少受权认证模块。同时,在博时的外部的利用零碎之间,也有单点登录的需要。对立的认证核心是微服务架构的必备组件。
Matrix 基于 OAuth2 协定构建了对立认证核心,实现用户、利用、接口的对立认证和鉴权。OAuth2 外围思路是通过各类认证伎俩认证用户身份,并颁发 Token,使得第三方利用能够应用该令牌在限定工夫、限定范畴拜访指定资源。Matrix 反对 OAuth2 的 Authorization Code、Resource Owner Credentials 和 Client Credentials 三种受权类型,依据不同的利用场景,采纳不同的受权类型颁发 Token,为开放平台的平安保驾护航。
3)RocketMQ 消息中间件
技术选型
在技术选型过程中,咱们次要思考以下几点:
首先必须是国产化的产品,其次是比拟风行并且社区活跃度高的开源产品。
另外,重点关注的 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,心愿咱们能一起畅游在翻新科技的星辰大海中,单干共赢。
理解更多 RocketMQ 信息,可退出社区交换群,上面是钉钉群,欢送大家加群留言。
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。