您的位置:首页 > 要闻 >

数字动能发布量化金融C++RPC框架

2019-08-01 17:08:24 来源: 北国网

在发布投研投顾一体化产品及整体解决方案后,数字动能在量化金融领域的技术积累基础上,发布其完全自主研发,可实现多业务模块间高速稳定通讯

在发布“投研投顾一体化”产品及整体解决方案后,数字动能在量化金融领域的技术积累基础上,发布其完全自主研发,可实现多业务模块间高速稳定通讯的C++RPC分布式通讯框架 –xRPC。xRPC是国内首个面向量化金融领域,基于C++的RPC通讯框架,可广泛应用于金融领域有高算力、大数据传输需求的多业务间通讯场景,是金融行业实现集中式业务中台,解决业务间互联互通的核心通讯技术。

一、投研投顾一体化的多业务场景需要分布式通讯框架支持

数字动能自成立以来专注于量化技术在资产管理业务中的探索和实践,利用金融工程+软件工程为特点的量化技术,数字动能先后陆续落地了量化策略交易终端AT、策略集中业务中台iMOM和SMD指数分析系统等量化投研产品。业务涵盖了量化投研生产,研究治理,再到智能投顾手机端的整个投研投顾产品线,产品间既互相联系,又互相独立。结合自身经验积累,2017年,数字动能面向大资管业务提出“投研投顾一体化”整体解决方案,目前在券商、期货和公募基金公司已经陆续获得应用案例。

数字动能基于量化科技的创新步伐并未停止,在实践中,“投研投顾一体化”解决方案以产品为中心的设计模式将迎来更大的变革。针对投研投顾中的大量定制化、业务多样、功能场景复杂的特点,解决方案产品间需要解决跨部门、跨业务、多场景业务整合和业务间数据通讯问题。要构建好投研前端、管理中台和业务转化的投研投顾一体化解决方案,一个可以组合更灵活、业务细粒度更高、 开放性更强的投研集中业务平台成为技术实现的难点。解决这些问题的首要关键技术在于,是否可以构建出一套统一的通讯方式,既可以满足业务/应用间的通讯需要,又要兼顾金融行业高速稳定特性的通讯框架。在定制类投研业务模块的开发过程中,通过约定的分布式通讯协议,实现服务间高速通讯。业界普遍采用的RPC通讯方式成为了首选。

二、通用RPC框架介绍

Remote Prodecure Call是程序间的远程调用的简称,业界目前普遍采用RPC实现程序间调用,一个标准的RPC调用过程如图1所示:

图1

如图1,两个程序之间能够通信的前提,必须要有一个服务发现机制。传统的做法是双方先约定好地址,在各个服务都提前知道对方地址的前提下实现通讯,这种方式叫静态路由。静态路由的通讯方式在一般情况下可以满足简单的程序间调用需求。但是随着业务的发展,服务数量的增多让静态路由变得很难满足需求,同时后台服务有动态上下线的需求,静态路由表更新不及时将导致一系列问题。为了解决静态路由问题,大部分RPC框架引入了服务注册中心来实现动态路由的功能。如下图2所示:

图2(注:此图省略了序列化/反序列化,运行时管理层以及传输层的步骤)

动态路由改变了原来的应用方式,被调用方服务启动的时候,先把自身的地址注册到服务注册中心。调用方发起RPC调用之前,先到服务注册中心里面获取被调用方的地址信息后才能发起RPC请求。

三、xRPC框架的提出

数字动能在解决投研投顾一体化解决方案中,一些特殊服务(如回测、高频数据传输等)由于信息传输频繁,数据并发量大和信息传递种类繁多,可能会产生硬件资源或网络资源消耗,通讯效能降低的情况。在实践中,我们认为RPC框架还应有更多的改进空间,数字动能架构组着手改进RPC通讯框架,以提升应用间的通讯效率,提高信息交换的稳定性。

四、xRPC的设计目的

A、强量化金融(算力调度、大数据量传输)应用场景

B、需要基于网络层的高速数据传输支持

C、带数据可靠性校验的稳定通讯支持

D、需要为服务/应用提供更高效的纯异步并发调用

E、增强RPC动态路由算法

xRPC的设计目的是为了更好的满足量化业务场景的高算力、高稳定性和极速传输需要的服务/应用间调用。通过对传统的RPC通讯框架进行全新设计,xRPC对服务间的通讯稳定性、可靠性和通讯性能进行了深度优化。xRPC分布式框架协议是面向量化金融领域(特别是面向投研投顾的应用场景)的纯异步高性能框架。

xRPC的通讯方式示意图

五、xRPC框架的特点

1、xRPC自带服务注册中心和动态路由方式

和其他RPC框架不同,xRPC同时本地缓存有一份路由表。在应用服务启动时,xPRC协议会要求应用服务把自身的所有服务信息以及网络地址注册到服务注册中心里。发送请求时,如果本地路由的管理层没有发现相应的服务地址信息,xRPC会根据协议约定,先到服务注册中心获取相应服务的地址信息,由本地路由管理层直接使用长连接到对方的路由管理层中,后面如果再次发送到同一个服务里面的时候,不再需要从服务注册中心获取, 并且双方是保持连接的, 能够直接感知对方的状态, 不需要再通过服务注册中心, 这种方式同时也能够很好的降低服务注册中心的压力。

2、xRPC全新设计的高性能序列化方法

根据量化金融的业务使用特点,把特定业务场景松耦合至多个服务间交互的直接代价就是增加了服务间通讯压力,对服务间相互调用的性能要求变得极其苛刻。xPRC对RPC框架中的序列化方式进行全新设计重构,设计出了一个高性能的序列化与反序列化的方法,来满足量化金融对性能要求极其苛刻的场景。

xSerial:全新的高速RPC的序列化方法

A、对数据类型的改进

xRPC的新序列化方法被称为xSerial,xSerial目前除了支持基本类型之外, 还支持了list、set、map。xSerial在序列化之前,可以快速并且精确的计算出数据序列化后的所占用的内存大小,提前申请好对应大小的内存,避免了在序列化中既要序列化又要动态扩张内存的动作所带来的性能损失。xSerial的C++的使用方法如下:

B、对序列化解析器IDL的改进

在使用的便捷性上, 大部分序列化与反序列化的方法,都是先编写一个IDL文件,通过IDL再生成各种语言的代码。xSerial也有自己的IDL支持,但是做出了改进, xSerial的IDL语言将与对应的xRPC原生语言相融合。也就是说,如果xRPC是跑在C++上,xSerial将相应提供一个C++的语法解析器,自动去扫描C++的代码,识别出要生成序列化的代码,使用者无需再额外编写IDL文件。目前xSerial的IDL支持原生Go,C#, JAVA,Matlab和Python。

C、支持动态代码序列化

xSerial除了支持静态代码的序列化方式之外,同时新增了动态代码序列化的使用支持。在xRPC框架的序列化过程中,xSerial生成器在生成静态代码的时候,会同时生成对应的Json描述,这让xRPC通讯过程中,任意第三方应用服务可以直接调用xSerial的Json描述,来对通讯数据进行动态的序列化与反序列化。

3、xRPC独特的通讯层:接口和通讯方法松耦合设计

在通讯上和其他RPC框架不一样,一般RPC框架的通讯方式都是具体且唯一的,同时一般RPC框架默认所有的应用都是独立进程的。xRPC把通讯层抽象为接口,使得通讯变得更加灵活。在xRPC里面用户只需定义接口,具体的通讯方式由底层自行决定。xRPC允许几个应用部署在同一个进程中,并自动判断应用是否同一个进程,选择信息的传输是通过内存交互还是网络(xRPC如果走网络通讯,将基于TCP)。这个设计使得量化金融的一些特定应用场景,如:对某几个服务间的大量数据高速交换过程可完全避免网络间的通讯消耗。

4、xRPC使用特点:请求发起只能基于调用框架

xRPC的调用和其他RPC的调用方式不一样,xRPC的调用必须基于调用框架才能发起请求,将彻底避免常见的Callback Hell问题。通过一个列子,看看xRPC是如何解决这个问题的:

A、发送单个RPC请求

B、发送多个顺序的RPC请求

从上图可以看到(注:忽略Exception和Finally),发送了SayHello之后,在其返回函数Then里面,只要调用Next方法,并且传入调用下一个RPC的请求的参数,即可继续发起下一个RPC请求,比如这里在调用了SayHello2,又在SayHello2的返回函数里面调用了SayHello3,这种编写的方式使得很好的解决了CallBack Hell的问题,让代码的维护性更好。

C、 同时发送多个RPC请求

同时发送多个RPC请求,使用的调用框架是BPParallelRPC,这样同时发送的三个请求,可以在Then函数里面,分别取出各个RPC的请求结果。

以上通过对xRPC使用的方法介绍,解释了为什么必须通过调用框架来发起RPC请求,这样RPC的定义只需要定义一次即可。后面使用只需要更换调用RPC的调用框架,而不需要去修改RPC的定义,同时每一个RPC请求都会注册到RPC请求管理器当中,由其对RPC进行重传、超时等管理。

xRPC是唯一面向金融行业的纯C++分布式RPC框架

六、为什么需要面向量化金融的分布式通讯框架

高速稳定的分布式通讯框架是实现业务中台的关键技术

业务中台化,本质是解决多个业务可以通过一个中台在彼此间实现互联互通。因此业务中台的设计中,其首要考虑的核心问题是如何把多部门多场景的各类业务可迅速接入并实现相互间可进行通讯。解决这个问题的关键,是拥有一套稳定高效的分布式通讯框架。国内提供商用分布式框架解决方案的目前仅有国内极少数几家科技公司,而国内提供面向金融行业的分布式框架更是少之又少,如蚂蚁金服的SofaRPC分布式解决方案。SOFARPC 最早源于阿里内部的 HSF,是近期蚂蚁金服开源的一个高可扩展性、高性能、生产级的 Java RPC 框架。它致力于简化应用之间的 RPC 调用,为应用提供方便透明、稳定高效的点对点远程服务调用方案。

数字动能发布的xRPC框架与SofaRPC相比,拥有更高效的执行效能和更轻量更灵活的调用方法等特点。他根据量化金融传输要求进行特定场景设计,在动态路由、序列化方法和通讯层协议中进行了大量场景针对设计,是一个稳定高速的C++ RPC框架。凭借数字动能在量化金融领域的技术积累,xRPC更适合应用于量化金融、投研投顾领域的高算力和海量数据传输场景,可实现在不同的业务,如:回测执行、实时行情订阅、金融数据存取、复杂金融指标计算,因子生产等服务间快速信息交换的需求。随着数字动能自主研发的C++RPC分布式通讯框架落地,意味其“投研投顾一体化”产品及方案将从围绕产品的方案实施,向投研投顾集中业务中台的战略转变。拥有一个分布式通讯框架技术,是衡量一个金融科技公司是否掌握业务(技术)中台核心技术的关键。数字动能已拥有可让多业务间可高速稳定进行通讯的业务中台核心技术。

关键词:

精选 导读

百合花语 百合的花语是什么

百合花的花语是纯洁、热烈的爱和永远幸福。因其外貌的洁白纯净,故有着

发布时间: 2023-06-19 10:35
互联网   2023-06-19

古代的剔骨之刑是指什么 古代的剔骨之刑是指什么刑法_微动态

刽子手把重要的骨头直接拔出来,血肉还在身上,比如蝴蝶骨、锁骨、颈椎

发布时间: 2023-06-19 10:57
互联网   2023-06-19

当前资讯!王漫妮结局是跟谁在一起了 王漫妮结局介绍

1、王漫妮结局离开了梁正贤,她去留学了,她并不因为年龄而焦虑,三十

发布时间: 2023-06-19 10:45
互联网   2023-06-19

焦点热门:veromoda是什么牌子 veromoda中文叫什么

知名女装品牌。veromoda中文名字是维莎曼。来自丹麦的北欧风情,曾经奢

发布时间: 2023-06-19 10:45
互联网   2023-06-19

豹房是干什么用的 何谓豹房|天天速看

1、豹房就是供皇帝骄奢淫欲的场所,劳民伤财。2、明朝的朱厚照(正德皇

发布时间: 2023-06-19 10:47
互联网   2023-06-19

fat32和ntfs的区别 fat32和ntfs有什么不同

​fat32和ntfs的区别主要有:1 安全属性,ntfs安全属性更高;2 推出时

发布时间: 2023-06-19 10:55
互联网   2023-06-19

焦点速看:环肥燕瘦的意思 词语环肥燕瘦的意思

1、这则成语意思是形容美人有不同的体态而各擅其美,也借喻艺术作品风

发布时间: 2023-06-19 10:45
互联网   2023-06-19

形容高兴的成语有哪些 形容高兴的成语有哪些? 环球聚焦

形容高兴的成语有:1、冁然而笑:高兴地笑起来。2、得意忘形:形容高兴

发布时间: 2023-06-19 10:54
互联网   2023-06-19

飞字组词 飞字组词有哪些 世界播报

1、飞鹰走马[fēiyīngzǒumǎ]:放鹰追捕和骑马追逐鸟兽。指打猎。2、

发布时间: 2023-06-19 10:33
互联网   2023-06-19

獴是什么动物 獴的生活习性

1、獴是一种小型的哺乳动物,而且獴也是一些长身、长尾而四肢短的动物

发布时间: 2023-06-19 10:48
互联网   2023-06-19

热门TAG

more
中国外贸网简介 重磅突发!王思聪在上海打人?警方刚刚通报 女子随手捐10元4个月后收到还款道谢 看到回复破防 国内猪肉价格开启新一轮周期?专家:国家调控政策正在起作用 彩电市场价格持续走低:50英寸千元轻松购还会降价吗? 鹤岗中介谈1.5万全款买房:别冲动 详情曝光系40年房龄的老房子价格自然便 稳外贸 福建拓“新”途 福建也积极开辟国际物流新通道 这条名为BarMar的能源运输路线以帮助缓解欧洲所面临的能源危机 宁波银行:聚焦主责主业,更好服务实体经济 重磅利好!涉房企业A股融资审核放宽,“白名单”浮出水面 能源是经济发展的动力源泉 美国经济萧条对汽车和电力市场的冲击力有多 多头酝酿更大爆发!美元有望再大涨近百点 广西北部湾畔崛起国际大港 商企耕耘十年等来春暖花开时 中国A股半导体板块周四大涨 十年时间增长超1200亿元 2021年创造天津市进出口历史最高纪录 天津口岸完成进出口贸易值2381亿美元 较2012年增长16.6% 深圳机场口岸通过发挥东南亚航线优势 不断丰富进口水果品类 国际航线(含港澳台)日均执行客运航班量达143班次 创今年新高 待中吉乌铁路建成后 将高效联通中欧班列的中通道与南通道线路 中国与RCEP成员国经过陆海新通道进出口总量52068标箱 国航已率先在空客、波音机型上开展可持续航空燃料应用 中国制造业屡创奇迹 牢牢站稳世界“C位” 今年新疆不断加大能源增产增供力度 新疆煤炭产量增长31.1%、排全国第2位 陶悦群计划围绕大健康等产业进行增资扩产 光伏电站位于Kharsaa地区 是卡塔尔首个太阳能发电厂 过去十年,重庆工业增加值总额由2012年的4291.4亿元提高至2021年的7888.7亿元 2021年盐湖化工产业实现产值331.8亿元 增长46.2% 切入储能赛道的消费电池头部玩家德赛电池近两日连续打板涨停 6个二线城市首套房贷款利率跌破4% 低至3.8% 倡议项目将由德国联邦经济和气候保护部的能源研究预算提供资金