一种多链路传输系统技术方案

技术编号:24589873 阅读:23 留言:0更新日期:2020-06-21 02:28
本发明专利技术公开了一种多链路传输系统,可提升吞吐,降低延时,保证数据的可靠传输。其技术方案为:系统包括一个发布端、多个订阅端、多个通道和一个主题流,其中发布端用于执行一个指定主题流的发布任务;通道用于发布端的任务发布和订阅端的消息接收;主题流中存有主题流消息并将主题流消息通过多个通道并行发布给多个订阅端;订阅端用于通过多个通道接收主题流消息,将接收到的主题流消息传递给应用层处理。

A multi link transmission system

【技术实现步骤摘要】
一种多链路传输系统
本专利技术涉及金融交易软件领域,具体涉及一种低延迟高可靠的高性能多链路传输系统。
技术介绍
金融交易软件本质上是一种流式处理系统,因此不可避免地会涉及到不同模块之间的数据流传输,模块之间的数据传输一般交由传输通信组件负责,也称为通信中间件。传输通讯组件一般采用“发布-订阅”机制进行消息传输。典型场景如图1所示。图1所示的组件中包含:主题流、通道、发布端和订阅端。主题流描述了消息的组织形式。在传输通讯组件中,每一个被传输的消息都必须有一个所属的主题,同一个主题下的各个消息形成了一个消息主题流。主题流内的消息是有序的,可以理解为是一类消息形成的队列。数据传输需经过通信通道。根据不同机器之间的数据传输,通道可以分为TCP、UDP广播、UDP单播、UDP组播四种类型。同台机器内的数据传输,除了可以使用上述四种通信通道外,还可以使用共享内存作为数据通信通道。发布端也称为生产者,负责发布一个主题流。应用层产生新消息后,发布端将消息放入对应的主题流内,并负责将该主题流通过通信通道发送至订阅端。订阅端也称为消费者,负责接收一个主题流。订阅端负责将订阅到的消息按照其原始发布顺序传递给应用层,一般需具备丢包检测能力。由于金融交易软件低延迟、高可靠的特性,因此要求金融交易软件中的传输通信组件具备如下特点:(1)低延迟。延迟衡量的是从发布端对外发送一个消息,到接收端确认该消息接收成功的时间,由于金融交易软件对系统内延时极为敏感,因此要求通信组件也具备较低的延迟。r>(2)高可靠。对于发布端产生的消息,需保证接收端能有序接收,并提供丢包重传机制。目前业界亟待开发满足上述要求的传输通讯组件。
技术实现思路
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。本专利技术的目的在于解决上述问题,提供了一种多链路传输系统,可实现发布端支持多通道并行发布主题流,提升吞吐,降低整体延时,由于通信通道支持多种机制,使得同一主题流可同时并行使用多种不同类型的通道,提供丢包重传、心跳检测等机制保证数据的可靠传输;通过流控、包合并等机制降低消息延时。本专利技术的技术方案为:本专利技术揭示了一种多链路传输系统,系统包括一个发布端、多个订阅端、多个通道和一个主题流,其中:发布端用于执行一个指定主题流的发布任务;通道用于发布端的任务发布和订阅端的消息接收;主题流中存有主题流消息并将主题流消息通过多个通道并行发布给多个订阅端;订阅端用于通过多个通道接收主题流消息,将接收到的主题流消息传递给应用层处理。根据本专利技术的多链路传输系统的一实施例,通道支持的类型包括但不限于:支持TCP、UDP广播、UDP单播、UDP组播、共享内存。根据本专利技术的多链路传输系统的一实施例,发布端内维护一发布会话列表,发布会话列表中包括多个发布会话,发布会话列表中的发布会话与通道一一对应,其中发布会话配置为监听各自对应的通道上的主题流消息,同时将主题流消息发布到各自对应的通道上。根据本专利技术的多链路传输系统的一实施例,订阅端内维护一订阅会话列表,订阅会话列表中包括多个订阅会话,订阅会话列表中的订阅会话和通道一一对应,其中订阅会话配置为处理各自对应的通道上的主题流消息。根据本专利技术的多链路传输系统的一实施例,各个订阅会话运行在不同的线程实体内,各个订阅会话之间共享一个订阅主题流,订阅会话并行接收各通道上的主题流消息,并将接收到的主题流消息写入共享的订阅主题流中。根据本专利技术的多链路传输系统的一实施例,多链路传输系统配置为订阅端在某一通道上发起主题订阅请求,发布端对应通道上的发布会话监听到该主题订阅请求后,根据该主题订阅请求中的订阅端节点号和订阅起始位置新建一个订阅端节点,发布端的该发布会话将新建的订阅端节点加入到该发布会话所维护的当前的订阅端节点列表中,其中订阅端节点列表中包括多个订阅端节点,订阅端节点是消息发布的基本单位,用于保存订阅端的消息;发布端还维护发布标识列表,发布标识列表由多个发布标识组成,每个发布标识对应一个订阅端,用于发布标识用于实时记录针对该订阅端的发布情况。根据本专利技术的多链路传输系统的一实施例,如果一发布会话内不包含任何订阅端节点,该发布会话处于休眠状态且不进行数据发布,当有新的订阅端节点加入到该发布会话后,该发布会话被激活并开始进行消息发布;订阅端节点所保存的订阅端的消息包括但不限于:订阅端节点编号、当前发布位置、订阅端发布标识指针,订阅端发布标识指针用于记录每个消息对应的发布状态。根据本专利技术的多链路传输系统的一实施例,多链路传输系统配置为发布端内维护一发布主题流,该发布主题流是一个线程安全的消息队列,由一系列消息构成,在该发布主题流中,每个消息都有一个唯一的消息编号,当应用层产生新消息后,发布端给该新消息分配一新的消息编号,并将该新消息放入到该发布主题流中。根据本专利技术的多链路传输系统的一实施例,多链路传输系统中还配置为执行一发布任务的处理流程,发布任务是将一个消息发布到通道上,处理流程为:在一次发布任务内,发布会话遍历各个订阅端节点来执行消息发布,在遍历过程中,对于每个订阅端节点,取出对应的订阅端发布标识指针和当前发布位置,同时清空发送缓冲区;如果发送缓冲区未写满,发布会话根据当前发布位置持续读取流中的消息:如果当前发布位置已大于主题流的大小,将发送缓冲区的消息发送后结束该次发布任务;如果当前发布位置在订阅端发布标识指针中被设置为已发布状态,则跳过该消息;如果当前发布位置在订阅端发布标识指针中的状态为待发布,则将该消息放入发送缓冲区,并修改订阅端发布标识指针状态为已发布,其中在将该消息加入发送缓冲区前,发布端为该消息增加发布包头,发布包头内包含消息序号即当前发布位置、主题号、发布端编号信息;如果发送缓冲区写满,则立即将发送缓冲区内的消息发送至通道内,结束本次发布任务。根据本专利技术的多链路传输系统的一实施例,各个发布会话根据流量控制策略实时调整发送缓冲区的大小,寻找发布端与订阅端相匹配的传输速率的最大值作为流量控制。根据本专利技术的多链路传输系统的一实施例,发布端的发布会话在将发送缓冲区的数据发送到对应的通道之前,先将发送缓冲区内的多个待发消息合并为一数据包一次性发送。根据本专利技术的多链路传输系统的一实施例,订阅端的订阅会话在从通道接收到数据包后先进行校验,再将校验合格的数据包加入到订阅主题流中,如果校验到丢包则做丢包重传处理,其中数据包校验包括主题校验和序号校验,主题校验是检查收到的数据包内的主题号和订阅的主题号是否一致,序号校验是用于保证传递给应用层的消息的有序性。根据本专利技术的多链路传输系统的一实施例,丢包重传配置为订阅端确认丢包范围后向发布端发送重传请求,本文档来自技高网...

【技术保护点】
1.一种多链路传输系统,其特征在于,系统包括一个发布端、多个订阅端、多个通道和一个主题流,其中:/n发布端用于执行一个指定主题流的发布任务;/n通道用于发布端的任务发布和订阅端的消息接收;/n主题流中存有主题流消息并将主题流消息通过多个通道并行发布给多个订阅端;/n订阅端用于通过多个通道接收主题流消息,将接收到的主题流消息传递给应用层处理。/n

【技术特征摘要】
1.一种多链路传输系统,其特征在于,系统包括一个发布端、多个订阅端、多个通道和一个主题流,其中:
发布端用于执行一个指定主题流的发布任务;
通道用于发布端的任务发布和订阅端的消息接收;
主题流中存有主题流消息并将主题流消息通过多个通道并行发布给多个订阅端;
订阅端用于通过多个通道接收主题流消息,将接收到的主题流消息传递给应用层处理。


2.根据权利要求1所述的多链路传输系统,其特征在于,通道支持的类型包括但不限于:支持TCP、UDP广播、UDP单播、UDP组播、共享内存。


3.根据权利要求1所述的多链路传输系统,其特征在于,发布端内维护一发布会话列表,发布会话列表中包括多个发布会话,发布会话列表中的发布会话与通道一一对应,其中发布会话配置为监听各自对应的通道上的主题流消息,同时将主题流消息发布到各自对应的通道上。


4.根据权利要求3所述的多链路传输系统,其特征在于,订阅端内维护一订阅会话列表,订阅会话列表中包括多个订阅会话,订阅会话列表中的订阅会话和通道一一对应,其中订阅会话配置为处理各自对应的通道上的主题流消息。


5.根据权利要求4所述的多链路传输系统,其特征在于,各个订阅会话运行在不同的线程实体内,各个订阅会话之间共享一个订阅主题流,订阅会话并行接收各通道上的主题流消息,并将接收到的主题流消息写入共享的订阅主题流中。


6.根据权利要求5所述的多链路传输系统,其特征在于,多链路传输系统配置为订阅端在某一通道上发起主题订阅请求,发布端对应通道上的发布会话监听到该主题订阅请求后,根据该主题订阅请求中的订阅端节点号和订阅起始位置新建一个订阅端节点,发布端的该发布会话将新建的订阅端节点加入到该发布会话所维护的当前的订阅端节点列表中,其中订阅端节点列表中包括多个订阅端节点,订阅端节点是消息发布的基本单位,用于保存订阅端的消息;发布端还维护发布标识列表,发布标识列表由多个发布标识组成,每个发布标识对应一个订阅端,用于发布标识用于实时记录针对该订阅端的发布情况。


7.根据权利要求6所述的多链路传输系统,其特征在于,如果一发布会话内不包含任何订阅端节点,该发布会话处于休眠状态且不进行数据发布,当有新的订阅端节点加入到该发布会话后,该发布会话被激活并开始进行消息发布;订阅端节点所保存的订阅端的消息包括但不限于:订阅端节点编号、当前发布位置、订阅端发布标识指针,订阅端发布标识指针用于记录每个消息对应的发布状态。


8.根据权利要求1所述的多链路传输系统,其特征在于,多链路传输系统配置为...

【专利技术属性】
技术研发人员:张海荣李思昌
申请(专利权)人:上海金融期货信息技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1