基于RPC的异步多线程并发网络通讯方法及装置制造方法及图纸

技术编号:33759180 阅读:21 留言:0更新日期:2022-06-12 14:08
本申请实施例提供了一种基于RPC的异步多线程并发网络通讯方法、装置、电子设备及计算机可读存储介质,涉及并发网络通讯领域。该方法包括:接收业务端基于业务量发送的启动指令;根据启动指令初始化线程池,线程池中包括基于业务量确定的工作线程;当接收到I/O事件时,通过异步任务分配器基于I/O事件创建I/O异步任务,并将I/O异步任务分配至第一工作线程的异步任务队列;根据远程服务调用协议,通过第一工作线程异步执行从第一工作线程的异步任务队列中获取的I/O异步任务。本申请实施例在保证远程网络连接的基础效率和性能的基础上,实现了性能在理论上可线性扩展。实现了性能在理论上可线性扩展。实现了性能在理论上可线性扩展。

【技术实现步骤摘要】
基于RPC的异步多线程并发网络通讯方法及装置


[0001]本专利技术涉及并发网络通讯领域,具体涉及一种基于RPC的异步多线程并发网络通讯方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]在并发网络通讯领域,存在多种通讯模型的设计和实现,如基础的Proactor和Reactor模式,以及相对上层的gRpc和Thrift等通用产品化方案。这些通用的模型和产品方案,都是以常规应用场景设计,目的是满足一般性的网络通讯和远程访问需求。
[0003]现有的网络通讯模式可以归纳为以下三种模式:单线程多路复用模式,该模式对大量网络连接的水平扩展能力有限;一个线程对应一个Socket连接的模式,该模式线程利用率低,支持的连接数受限于线程数;多线程共享连接抢占式处理模式,该模式的抢占过程性能影响较大并且与线程相关的状态管理实现较为复杂。
[0004]另外,该领域中的一些通用模型和通用产品化方案,都是以满足一些常规应用场景为设计目标,许多通用的RPC实现都是支持面向单一服务,并不支持面向服务集群。同时,对于一些特定的细分应用场景,并不能达到该应用场景特定的目标需求,性能低且无法负载均衡。

技术实现思路

[0005]本申请的目的旨在至少能解决上述的技术缺陷之一,特别是通讯模型的性能低且无法负载均衡的技术缺陷。
[0006]第一方面,提供了一种基于RPC的异步多线程并发网络通讯方法,该方法包括:
[0007]接收业务端基于业务量发送的启动指令;
[0008]根据启动指令初始化线程池,线程池中包括基于业务量确定的工作线程;
[0009]当接收到I/O事件时,通过异步任务分配器基于I/O事件创建I/O异步任务,并将I/O异步任务分配至第一工作线程的异步任务队列;
[0010]根据远程服务调用协议,通过第一工作线程异步执行从第一工作线程的异步任务队列中获取的I/O异步任务。
[0011]可选地,根据启动指令初始化线程池,线程池中包括基于业务量确定的第一工作线程,包括:
[0012]根据业务量,确定工作线程的线程数量;
[0013]根据线程数量,创建工作线程及工作线程的异步任务队列;
[0014]启动工作线程。
[0015]可选地,在根据启动指令初始化线程池之后,还包括:
[0016]根据业务量,确定网络连接的第一连接数量;
[0017]根据第一连接数量,通过异步任务分配器创建网络连接异步任务;
[0018]通过异步任务分配器将网络连接异步任务分配至第二工作线程的异步任务队列;
[0019]通过第二工作线程异步执行从第二工作线程的异步任务队列中获取的网络连接异步任务以建立网络连接;
[0020]其中,在异步执行网络连接异步任务时,生成异步回调消息。
[0021]可选地,在通过第二工作线程异步执行网络连接异步任务之后,还包括:
[0022]当成功建立网络连接时,通过异步任务分配器将网络连接分配给工作线程;
[0023]通过异步任务分配器更新网络连接与为网络连接分配的第一工作线程的对应关系。
[0024]可选地,将I/O异步任务分配至第一工作线程的异步任务队列之前,还包括:
[0025]根据I/O事件确定网络连接;
[0026]通过异步任务分配器根据网络连接和对应关系确定第一工作线程,第一工作线程为与网络连接相对应的工作线程。
[0027]可选地,根据远程服务调用协议,通过第一工作线程异步执行从第一工作线程的异步任务队列中获取的I/O异步任务包括:
[0028]根据远程服务调用协议,通过第一工作线程确定I/O异步任务中的通讯链路数据和业务数据;
[0029]当对通讯链路数据进行处理时,通过第一工作线程基于通讯链路数据执行异步操作;
[0030]当对业务数据进行处理时,通过第一工作线程基于业务数据执行异步操作;
[0031]其中,在执行异步操作时,生成异步回调信息。
[0032]可选地,基于RPC的异步多线程并发网络通讯方法还包括:
[0033]通过异步回调接口向业务端发送异步回调信息;
[0034]接收业务端基于异步回调信息反馈的指令。
[0035]可选地,基于RPC的异步多线程并发网络通讯方法还包括:
[0036]接收业务端发送的停止指令;
[0037]根据停止指令停止接收I/O事件,并通过工作线程关闭网络连接、停止异步执行操作。
[0038]可选地,基于RPC的异步多线程并发网络通讯方法,还包括:
[0039]当接收到业务端发送的更新网络连接的指令时,根据指令确定网络连接的第二连接数量;
[0040]根据第二连接数量,通过异步任务分配器创建新的网络连接异步任务;
[0041]通过异步任务分配器将新的网络连接异步任务分配给第二工作线程的异步任务队列;
[0042]通过第二工作线程异步执行从第二工作线程的异步任务队列中获取的新的网络连接异步任务以更新网络连接。
[0043]第二方面,提供了一种基于RPC的异步多线程并发网络通讯装置,该装置包括:
[0044]接收单元,用于接收业务端基于业务量发送的启动指令;
[0045]线程池单元,用于根据启动指令初始化线程池,线程池中包括基于业务量确定的工作线程;
[0046]异步任务分配单元,包括异步任务分配器,用于在接收到I/O事件时,通过异步任
务分配器基于I/O事件创建I/O异步任务,并将I/O异步任务分配至与第一工作线程的异步任务队列;
[0047]其中,所述线程池单元包括执行子单元,用于根据远程服务调用协议,通过第一工作线程异步执行从第一工作线程的异步任务队列中获取的I/O异步任务。
[0048]可选地,线程池单元还包括初始化子单元,具体用于:
[0049]根据业务量,确定工作线程的线程数量;
[0050]根据线程数量,创建工作线程及工作线程的异步任务队列;
[0051]启动工作线程。
[0052]可选地,基于RPC的异步多线程并发网络通讯装置还包括:网络连接单元,用于在根据启动指令初始化线程池之后,根据业务量确定网络连接的第一连接数量;
[0053]则异步任务分配单元还用于:
[0054]根据第一连接数量,通过异步任务分配器创建网络连接异步任务;
[0055]通过异步任务分配器将网络连接异步任务分配至第二工作线程的异步任务队列;
[0056]执行子单元还用于:
[0057]通过第二工作线程异步执行从第二工作线程的异步任务队列中获取的网络连接异步任务以建立网络连接;
[0058]其中,在异步执行网络连接异步任务时,生成异步回调消息。
[0059]可选地,异步任务分配单元还用于:
[0060]当成功建立网络连接时,通过异步任务分配器将网络连接分配给工作线程;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RPC的异步多线程并发网络通讯方法,其特征在于,包括:接收业务端基于业务量发送的启动指令;根据所述启动指令初始化线程池,所述线程池中包括基于所述业务量确定的工作线程;当接收到I/O事件时,通过异步任务分配器基于所述I/O事件创建I/O异步任务,并将所述I/O异步任务分配至第一工作线程的异步任务队列;根据远程服务调用协议,通过所述第一工作线程异步执行从所述第一工作线程的异步任务队列中获取的所述I/O异步任务。2.根据权利要求1所述的基于RPC的异步多线程并发网络通讯方法,其特征在于,所述根据所述启动指令初始化线程池,所述线程池中包括基于所述业务量确定的工作线程,包括:根据所述业务量确定所述工作线程的线程数量;根据所述线程数量,创建所述工作线程及所述工作线程的异步任务队列;启动所述工作线程。3.根据权利要求1所述的基于RPC的异步多线程并发网络通讯方法,其特征在于,在根据所述启动指令初始化线程池之后,还包括:根据所述业务量确定网络连接的第一连接数量;根据所述第一连接数量,通过所述异步任务分配器创建网络连接异步任务;通过所述异步任务分配器将所述网络连接异步任务分配至第二工作线程的异步任务队列;通过所述第二工作线程异步执行从所述第二工作线程的异步任务队列中获取的所述网络连接异步任务以建立所述网络连接;其中,在异步执行所述网络连接异步任务时,生成异步回调消息。4.根据权利要求3所述的基于RPC的异步多线程并发网络通讯方法,其特征在于,在通过所述第二工作线程异步执行所述网络连接异步任务之后,还包括:当成功建立所述网络连接时,通过所述异步任务分配器将所述网络连接分配给所述工作线程;通过所述异步任务分配器更新所述网络连接与为所述网络连接分配的工作线程的对应关系。5.根据权利要求4所述的基于RPC的异步多线程并发网络通讯方法,其特征在于,所述将所述I/O异步任务分配至第一工作线程的异步任务队列之前,还包括:根据所述I/O事件,确定所述网络连接;通过所述异步任务分配器根据所述网络连接和所述对应关系确定所述第一工作线程,所述第一工作线程为与所述网络连接相对应的工作线程。6.根据权利要求1所述的基于RPC的异步多线程并发网络通讯方法,其特征在于,根据远程服务调用协议,通过所述第一工作线程异步执行从所述第一工作线程的异步任务队列中获取的所述I/O异步任务,包括:根据所述远程服务调用协议,通过所述第一工作线程确定所述I/O异步任务中的通讯链路数...

【专利技术属性】
技术研发人员:施怡旻韦昌太彭迈罗莉萍姚勇强黄一冬李昊温兴全
申请(专利权)人:亚信科技中国有限公司
类型:发明
国别省市:

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

1