【技术实现步骤摘要】
一种应用层网络数据缓存方法
[0001]本专利技术涉及一种数据缓存方法,具体涉及可应用于金融交易软件领域中的应用层网络数据的缓存方法。
技术介绍
[0002]金融交易软件在开发和使用过程中,不可避免地会涉及到不同模块之间的数据流传输,模块之间的数据传输一般交由传输通信组件负责,也称为通信中间件。
[0003]对于传输通信组件而言,通信通道,也就是数据传输需要经过的通信通道,是至关重要的。不同机器之间的数据传输,通信通道可以分为TCP、UDP广播、UDP单播、UDP组播四种类型。对于在不同机器之间做数据传输的场景,为保证数据的高可靠性,即对于发布端产生的消息,需保证接收端能有序接收,一般会采用流式通信模式,例如TCP通信。
[0004]众所周知,网络是会出现拥塞现象的:
[0005](1)当多个不同节点同时发送数据包到相同的目标节点时,网络交换机会出现排队,然后依次将数据包转发到目标网络。如果网络负载过重,数据包可能必须等待一段时间才能获得发送机会。如果数据量太大,交换机队列塞满,之后的数据包则会被丢弃 ...
【技术保护点】
【技术特征摘要】
1.一种应用层网络数据缓存方法,其特征在于,方法适配于多链路可靠传输通信组件基于线程池机制的多通道并行的发布
‑
订阅机制,多链路可靠传输通信组件包括发布端和接收端,当接收端不接受数据或者接收端的处理速率比发布端的发送速率低,导致其底层的系统接收缓存区已满时,发布端将未成功发送的数据先存入应用层缓存区,直到对应发送通道的系统底层的发送队列有空间后,重新将该应用层缓存区的数据依次写入到发送队列进行发送,应用层网络数据缓存方法包括针对内存管理中的多线程固定内存池分配、针对内存管理中的内存回收、针对内存管理中的线程局部存储、以及发布端进行消息发布的流程。2.根据权利要求1所述的应用层网络数据缓存方法,其特征在于,发布端通过会话容器维护多个会话通道发布主题流的数据,接收端接入多个会话通道收取主题流的消息,其中发布端的各个发布会话独立运行于不同的线程实体内以实现消息的并行发布;对应的,接收端的各个接收会话独立运行于不同的线程实体内以实现消息的并行收取。3.根据权利要求2所述的应用层网络数据缓存方法,其特征在于,对于多网卡的环境,在每个网卡上分配一个会话通道,将主题流的数据发布的任务分摊到各个会话通道上。4.根据权利要求1所述的应用层网络数据缓存方法,其特征在于,针对内存管理中的多线程固定内存池分配的处理进一步配置为:应用层缓存区的各个内存节点的地址使用快速队列容器保存在一个队列数据结构的线性缓存区中,该线性缓存区是用于维护所有内存节点的基于快速队列的容器,依赖快速队列的先进先出的特性,将未发送完成的数据入队到队尾,再从队首取出数据进行发送,且内存节点的接口层采用链表型式。5.根据权利要求1所述的应用层网络数据缓存方法,其特征在于,针对内存管理中的内存回收的处理进一步配置为:当使用内存节点时,从线性缓存区中出队一个内存节点,当该内存节点的读和写的位置相同时,该内存节点将读写位置归零,以表示这个内存节点的整块内存都是空闲状态,此时如果线性缓存区拥有至少一个内存节点时,则通过将该空闲的内存节点入队到线性缓存区的操作,来对该...
【专利技术属性】
技术研发人员:张海荣,李思昌,金甫虞,王康贵,
申请(专利权)人:上海金融期货信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。