公开/公告号CN112613860B
专利类型发明专利
公开/公告日2022-08-09
原文格式PDF
申请/专利权人 东方证券股份有限公司;
申请/专利号CN202011500389.8
申请日2020-12-17
分类号G06Q20/02(2012.01);G06Q40/04(2012.01);H04L69/164(2022.01);H04L67/141(2022.01);H04L47/62(2022.01);H04L43/10(2022.01);
代理机构上海科盛知识产权代理有限公司 31225;
代理人赵继明
地址 200010 上海市黄浦区中山南路318号
入库时间 2022-09-06 00:41:19
法律状态公告日
法律状态信息
法律状态
2022-08-09
授权
发明专利权授予
技术领域
本发明涉及金融科技领域,尤其是涉及一种基于深交所TGW的集群报盘系统。
背景技术
深交所的托管机制是自动托管,随处通买,哪买哪卖,转托不限。但因交易对实时性要求非常高,多席位交易导致验资验券、冻结解冻算法复杂,交易性能大幅下降,同时多席位交易导致清算困难,往往客户在一家券商只有一个托管席位,交易时仅与一个托管交易网关(TGW)连接进行报盘。席位资源是券商的重要通道资源,多个客户使用同一个席位是券商最通用的做法,尤其是大量散户共享一个席位。但是席位共享带来的直接问题就是流量的共享。如果客户做高频交易,流速控制是非常不利的。但是受制于单个TGW的流速权限制,即使单客户独享一个TGW也受限于TGW最高流速权。扩展流速对于高频交易客户是必然诉求。
现有的单席位和单TGW的模式,如果遇到TGW故障时,必须采用紧急启动备用TGW的模式,报盘服务会有短暂的中断,如遇到TGW所在服务器严重故障时,主备切换往往需要时间更长。高可用设计是券商核心系统设计的重要理念,但是因为工程实现困难,很多的高可用设计往往难以实施,或者因为造价异常高昂而难以规模化实施。因此对于TGW故障,或者TGW所在机器故障不能工作的情况,采用在线故障隔离的方式也尤为必要。
如果单客户独享一个席位,独享一组TGW进行报盘,遇到客户交易低峰时,多个TGW将造成巨大浪费。如果多个不同时间段出现交易峰值的客户共享一组TGW进行交易,在TGW资源稀有的当下,即使这些客户都位于同一个席位上,也将会大大节约TGW的资源。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于深交所TGW的集群报盘系统,满足高频交易时对流速的需求,有效解决多个客户时间上流速分配不均导致资源浪费的问题,保证高可用、低延时的极速报盘。
本发明的目的可以通过以下技术方案来实现:
一种基于深交所TGW的集群报盘系统,包括高速交易总线和报盘服务模块,所述高速交易总线通过UDP组播网络和交易引擎进行通信,接收交易引擎的交易订单,发送给报盘服务模块,同时向交易引擎发送确认和成交回报数据,所述报盘服务模块包括总线处理子模块、业务处理子模块和多个TCP连接,所述总线处理子模块接收交易订单,将属于同一个报盘组的交易订单编入同一个订单队列,所述业务处理子模块按照轮序报盘算法,将订单队列通过TCP连接报送给深交所TGW。
所述总线处理子模块包括数据解析组件和排队处理组件。
进一步地,所述数据解析组件通过protobuf数据解析技术将总线处理子模块收到的交易数据解析成交易订单,所述排队处理组件将所述交易订单按照时间先后顺序编入订单队列。
进一步地,所述订单队列具体为交易订单数据的线性表结构。
进一步地,所述数据解析组件通过解析底层二进制数据,按照预设的订单数据结构进行打包,形成所述交易订单。
所述业务处理子模块设置有多个交易处理单元,所述交易处理单元的数量与报盘组对应的交易单元的数量相同,业务处理子模块根据交易单元进行逐个分类,将同一个交易单元对应的交易订单投递给对应的交易处理单元。
进一步地,所述交易处理单元从业务处理子模块中接收相应报盘组的交易单元发送的订单队列,按照轮序报盘算法与预设的单元顺序,将订单队列拆分后通过TCP连接循环报送给深交所TGW。
进一步地,所述集群报盘系统中设有相应的TGW连接状态列表,采用心跳监测方式来监测所有TGW健康连接状态,列表中的一个TGW如出现异常,将监测到的异常TGW从TGW健康状态列表中剔除,断开与异常TGW的连接。接收到的订单队列,将按照健康的TGW列表重新拆分,拆分后通过TCP连接循环报送给深交所TGW。
进一步地,所述集群报盘系统的功能还包括接收深交所TGW回传的订单确认数据和成交回报数据,根据交易订单的报盘合同号识别订单确认数据,对于重复收到的订单确认数据进行过滤,同时根据交易订单的报盘合同号和深交所的成交编号识别成交回报数据,对于重复收到的成交回报数据进行过滤,防止交易引擎重复处理订单确认和成交回报,避免资金和证券的重复计算。
所述轮序报盘算法设有轮序机制与故障标识和隔离机制。
所述高速交易总线基于高速万兆网卡,通过高速交换机与交易引擎处于同一个万兆组播网络。
与现有技术相比,本发明具有以下有益效果:
1.本发明通过设置高速交易总线,与交易引擎处于同一个万兆组播网络,满足了系统高可用、低延时等技术要求,为极速报盘提供了技术基础。
2.本发明通过集群式的报盘服务模块,每个TGW绑定一组席位,N个TGW组成一个报盘组,实现多席位的报盘轮换,有效解决了不同时间流速分配不均导致资源浪费的问题,极大的提高了报盘席位的利用率,并能实现交易单元的扩展,实现了资源有效利用,节约了成本。
3.本发明通过轮序报盘服务对订单队列进行拆分,将单一队列的订单序列按照顺序分别对应到多个TGW进行报送,扩展了报盘流速的最高流速权,有效解决了委托报盘时的订单积压问题,大大提高了报单速率,满足了瞬间峰值下投资者快进快出的交易需求。
4.本发明采用心跳监测方式来监测所述所有TGW健康状态列表中的一个TGW如连接异常,并将监测到的异常TGW从TGW健康状态列表中剔除,剔除后将订单队列按照健康的TGW列表重新拆分,实现用户系统无感知的故障隔离。
附图说明
图1为本发明的结构示意图;
图2为本发明实施例中轮序报盘的原理示意图;
图3为本发明实施例中轮序报盘的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,一种基于深交所TGW的集群报盘系统,包括高速交易总线和报盘服务模块,高速交易总线通过UDP组播网络和交易引擎进行通信,接收交易引擎的交易订单,发送给报盘服务模块,同时向交易引擎发送确认和成交回报数据,报盘服务模块包括总线处理子模块、业务处理子模块和多个TCP连接,总线处理子模块接收交易订单,将属于同一个报盘组的交易订单编入同一个订单队列,业务处理子模块按照轮序报盘算法,将订单队列通过TCP报送给深交所TGW。
总线处理子模块包括数据解析组件和排队处理组件。
数据解析组件通过protobuf数据解析技术将总线处理子模块收到的交易数据解析成交易订单,排队处理组件将交易订单按照时间先后顺序编入订单队列。
订单队列具体为交易订单数据的线性表结构。
数据解析组件通过解析交易数据的底层二进制数据,按照预设的订单数据结构进行打包,形成交易订单。
业务处理子模块设置有多个交易处理单元,交易处理单元的数量与报盘组对应的交易单元的数量相同,业务处理子模块根据交易单元进行逐个分类,将同一个交易单元对应的交易订单投递给对应的交易处理单元。
交易处理单元从业务处理子模块中接收相应报盘组的交易单元发送的订单队列,按照轮序报盘算法与预设的单元顺序,将订单队列拆分后通过TCP循环报送给深交所TGW。
集群报盘系统设有相应的TGW健康状态列表,采用心跳监测方式来监测TGW健康连接状态,如连接异常列表中的一个TGW,并将监测到的异常TGW从TGW健康状态列表中剔除,断开与故障TGW连接。剔除后将接收的订单队列,按照健康的TGW列表重新拆分,拆分后通过TCP连接循环报送给深交所TGW。
集群报盘系统的功能还包括接收深交所TGW回传的订单确认数据和成交回报数据,根据交易订单的报盘合同号识别订单确认数据,对于重复收到的订单确认数据进行过滤,同时根据交易订单的报盘合同号和深交所的成交编号识别成交回报数据,对于重复收到的成交回报数据进行过滤,防止交易引擎重复处理订单确认和成交回报,避免资金和证券的重复计算。
轮序报盘算法设有轮序机制与故障标识和隔离机制。
高速交易总线基于高速万兆网卡,通过高速交换机与交易引擎处于同一个万兆组播网络。
如图2所示,其中X为托管席位,A1、A2和A3为报盘席位,轮序报盘算法基于深交所席位与TGW解耦(不同TGW绑定同一个席位),保证确保同一交易单元的委托订单可以通过不同的TGW报单给深交所,报盘服务中不同交易单元的订单序列里的交易订单按时间顺序依次在多个TGW之间轮序报盘,保证了流速均匀分配,提高资源利用率,避免了资源浪费。
如图3所示,本实施例中,TGW资源的数量为3个,进行交易订单轮序报盘时具体包括以下步骤:
步骤S1:系统交易引擎接收各类终端报送的交易订单,分别为订单1、订单2、订单3、订单4和订单5;
步骤S2:交易引擎将订单1、订单2、订单3、订单4和订单5的订单数据依次传输到高速交易总线上;
步骤S3:高速交易总线将订单数据订单1、订单2、订单3、订单4和订单5的订单数据传输给报盘服务模块,报盘服务模块中内置的总线处理子模块进行二进制订单数据解析,分别生成结构数据形式的订单①、结构数据形式的订单②、结构数据形式的订单③、结构数据形式的订单④和结构数据形式的订单⑤,根据所属的交易单元分别放入对应的交易单元的订单序列;
步骤S4:报盘服务模块中内置的业务处理子模块将订单序列中的订单依次按照不同交易单元给到对应的交易处理单元,然后进行轮序报盘,即订单①报送到TGW1,订单②报送到TGW2,订单③报送到TGW3,订单④报送到TGW1,订单⑤报送到TGW2,按照上述顺序依次轮序报盘;
步骤S5:深交所收到订单后,深交所处理完订单后从与报盘相同的TGW反馈其确认和回报信息给TGW,由原报盘路径逆向返回给交易引擎,完成报盘。
步骤S4中,若订单⑤报送到TGW2时,TGW2发生故障,订单⑤将继续向下一个TGW轮序,报送到TGW3上。
此外,需要说明的是,本说明书中所描述的具体实施例子,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等效变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
机译: 服务器集群中包含多个节点的集群中基于集群分散存储系统的最小带宽恢复编码方法AMD服务器通信中包含集群中的点的冗余且集群中存储的集群的冗余度系统
机译: 一种用于在整个电子设备的集群中分配电能的系统,一种用于在这样的系统的电子设备的集群之间分配电能的方法以及在这种系统中使用的控制单元
机译: 提供基于虚拟集群办公室地址的服务的系统,基于系统的虚拟集群办公室地址提供服务的装置和方法