CN107423118A - 分布式计算数据转发方法和装置 - Google Patents
分布式计算数据转发方法和装置 Download PDFInfo
- Publication number
- CN107423118A CN107423118A CN201710266456.6A CN201710266456A CN107423118A CN 107423118 A CN107423118 A CN 107423118A CN 201710266456 A CN201710266456 A CN 201710266456A CN 107423118 A CN107423118 A CN 107423118A
- Authority
- CN
- China
- Prior art keywords
- subprocess
- process pool
- client
- passes
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 140
- 230000008569 process Effects 0.000 claims abstract description 116
- 238000001514 detection method Methods 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种分布式计算数据转发方法和装置,所述方法包括:获取预设进程数;创建进程池,所述进程池包括数量为所述预设进程数的子进程;检测网络端口是否接收到客户端的连接请求;当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。根据预设进程数创建预设数量的子进程,并在检测到客户端的连接请求后,将进程池中空闲子进程与客户端连接,使得与客户端连接子进程数量限制在预设进程数内,有效避免进程数过多,避免占用过多的服务器资源,提升了服务器的运行性能。
Description
技术领域
本发明涉及分布式计算技术领域,特别是涉及分布式计算数据转发方法和装置。
背景技术
将计算性能较弱的计算节点整合成为具有较强计算能力的集群是分布式计算平台的重要功能。这一过程涉及计算迁移,即将用户的操作指令通过网络通信传送并运行在远端服务器,然后将结果返回给用户。网络转发机制是计算迁移的关键问题。
转发虽解决了外网主动访问内网IP的难题,但同时也为数据传输带来了转发延时。为了最大限度的减少转发时延,转发节点对数据不做任何解封装和封装动作,接收后直接转发。
计算机与路由器在网络体系中所处层次不一样,虽转发原理相似,但其区别有二:一是路由器采用的是专业IOS(Internetwork Operating System,互联网操作系统),转发速度要快;二是计算机接收数据采用的是系统自带的send和recv函数,实际上对报文解析到了传输层,而路由器只对报文解析到网络层,这之差别就造成了一部分时延。也就是说,计算机在分布式计算中转发数据存在一定的延时。
在分布式计算中,作为服务器的计算机,既要接受客户端的连接申请,又要接收客户端发送的数据信息,还要保证数据信息实现点对点准确无误的传送,是典型的并发模型。解决并发模型的方法主要有多线程和多进程两种方式,线程由于资源的共享原因,常常需要大量的互斥变量,造成程序代码比较复杂,甚至影响到程序的并发度。而该系统需要最大限度的提高服务器的并发处理能力,多进程并发模型成为首选。
传统的多进程并发模型在客户端数量较多时,客户端无限制地向服务器端提出连接申请,服务器端的进程爆满,占用服务器的大量资源,从而影响服务器的性能,甚至让服务器宕机(亦称当机或死机)。
发明内容
基于此,有必要针对传统的分布式计算中,服务器在进行数据转发时采用多进程并发模式,容易造成进程数量过大,数量较大的进程将占用服务器的大量资源,极大地影响服务器的性能的缺陷,提供一种分布式计算数据转发方法和装置。
一种分布式计算数据转发方法,包括:
获取预设进程数;
创建进程池,所述进程池包括数量为所述预设进程数的子进程;
检测网络端口是否接收到客户端的连接请求;
当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;
当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
在其中一个实施例中,所述获取预设进程数的步骤具体为:
获取网络连接参数;
根据所述网络连接参数获取所述预设进程数。
在其中一个实施例中,所述创建进程池的步骤之后还包括:
检测所述进程池中是否存在退出状态的子进程;
当所述进程池中存在退出状态的子进程时,则创建子进程。
在其中一个实施例中,所述当所述进程池中存在退出状态的子进程时,则创建子进程的步骤包括:
当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;
创建与所述退出状态的子进程数量相等的子进程。
在其中一个实施例中,所述检测所述进程池中是否存在空闲状态的子进程的步骤之后还包括:
当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
一种分布式计算数据转发装置,包括:
进程数获取模块,用于获取预设进程数;
进程池创建模块,用于创建进程池,所述进程池包括数量为所述预设进程数的子进程;
连接请求检测模块,用于检测网络端口是否接收到客户端的连接请求;
空闲进程检测模块,用于当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;
连接建立模块,用于当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
在其中一个实施例中,所述进程数获取模块包括:
网络参数获取单元,用于获取网络连接参数;
进程数获取单元,用于根据所述网络连接参数获取所述预设进程数。
在其中一个实施例中,还包括:
退出状态检测模块,用于检测所述进程池中是否存在退出状态的子进程;
子进程创建模块,用于当所述进程池中存在退出状态的子进程时,则创建子进程。
在其中一个实施例中,所述子进程创建模块包括:
退出数量获取单元,用于当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;
子进程创建单元,用于创建与所述退出状态的子进程数量相等的子进程。
在其中一个实施例中,还包括:
拒绝响应模块,用于当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
上述分布式计算数据转发方法和装置,根据预设进程数创建预设数量的子进程,并在检测到客户端的连接请求后,将进程池中空闲子进程与客户端连接,使得与客户端连接子进程数量限制在预设进程数内,有效避免进程数过多,避免占用过多的服务器资源,有效提升了服务器的运行性能。
附图说明
图1A为一实施例的分布式计算数据转发方法的流程示意图;
图1B为另一实施例的分布式计算数据转发方法的流程示意图;
图1C为另一实施例的分布式计算数据转发方法的流程示意图;
图1D为另一实施例的分布式计算数据转发方法的流程示意图;
图2A为一实施例的分布式计算数据转发装置的功能模块图;
图2B为一实施例的进程数获取模块的功能模块图;
图2C为另一实施例的分布式计算数据转发装置的功能模块图;
图2D为一实施例的子进程创建模块的功能模块图;
图2E为另一实施例的分布式计算数据转发装置的功能模块图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以采用许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目标是使对本发明的公开内容的理解更加透彻全面。
例如,一种分布式计算数据转发方法,包括:获取预设进程数;创建进程池,所述进程池包括数量为所述预设进程数的子进程;检测网络端口是否接收到客户端的连接请求;当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
本实施例中,根据预设进程数创建预设数量的子进程,并在检测到客户端的连接请求后,将进程池中空闲子进程与客户端连接,使得与客户端连接子进程数量限制在预设进程数内,有效避免进程数过多,避免占用过多的服务器资源,有效提升了服务器的运行性能。
在一个实施例中,如图1A所示,提供一种分布式计算数据转发方法,包括:
步骤101,创建父进程。
具体地,该父进程用于创建进程池,例如,该父进程用于创建子进程,例如,该父进程用于创建数量为预设进程数的子进程。该父进程用于检测网络端口的状态,并响应网络端口的连接请求。例如,该父进程为一级进程,该子进程为父进程的二级进程。
步骤103,获取预设进程数。
具体地,该预设进程数为一个数值,预设进程数为进程池的子进程的数量。例如,该预设进程数为固定数值,又如,该预设进程数为预设数值,例如,该预设进程数预存在存储空间中,例如,该预设进程数根据网络状态设置,该预设进程数可以是由用户设置,也可以是服务器或者系统自动设置。具体地,该预设进程数预存在系统的存储空间中,本步骤中,父进程在创建子进程前,从系统的存储空间中获取预设进程数。
步骤105,创建进程池,所述进程池包括数量为所述预设进程数的子进程。
具体地,本步骤中,创建子进程,该进程池为多个子进程的集合,该进程池内包括了预设进程数的子进程,例如,父进程创建子进程,例如,父进程创建预设进程数的子进程,该预设进程数的子进程即为进程池。
步骤107,检测网络端口是否接收到客户端的连接请求。
具体地,该网络端口为服务器的网络端口,例如,该网络端口为逻辑端口,又如,该网络端口为虚拟端口,例如,该网络端口为TCP/IP协议的端口。客户端的连接请求用于请求与服务器建立连接。
本步骤中,由父进程对网络端口进行侦听,检测是否接收到客户端的请求,例如,父进程创建侦听套接字,该侦听套接字用于侦听网络端口,检测网络端口是否接收到连接请求。
步骤109,当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程。
例如,步骤107与步骤109中,检测网络端口是否接收到客户端的连接请求,否则处于空闲状态的子进程则继续保持空闲状态;是则进一步检测所述进程池中是否存在空闲状态的子进程,然后执行后续步骤。
具体地,进程池中包括了多个子进程,子进程用于与客户端建立连接,每一子进程与一客户端建立连接,建立了连接的子进程则处于连接状态,而未处于连接状态的子进程则处于空闲状态,值得一提的是,该空闲状态的子进程仅仅是处于待连接的空闲状态,而并未结束。
本步骤中,当检测到接收到客户端的连接请求时,检测进程池中是否存在空闲状态的子进程,即检测是否由处于待连接状态的子进程,由于处于连接状态的子进程与建立了与其他客户端的连接,则无法响应本次的客户端的连接请求。
步骤111,当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
具体地,当进程池中有空闲状态的子进程,则将空闲状态的子进程建立与客户端的连接,应该理解的是,处于空闲状态的子进程可以有多个,因此,仅需将其中一个建立与客户端的连接,即可响应连接请求,使得客户端的请求得到响应,建立连接。例如,子进程通过通信套接字与客户端建立连接。
上述实施例中,根据预设进程数创建预设数量的子进程,并在检测到客户端的连接请求后,将进程池中空闲子进程与客户端连接,使得与客户端连接子进程数量限制在预设进程数内,有效避免进程数过多,避免占用过多的服务器资源,有效提升了服务器的运行性能。
为了进一步提高数据转发效率,提高服务器使用率,合理利用服务器的性能,在一个实施例中,如图1B所示,步骤103具体包括:
步骤103a,获取网络连接参数。
具体地,该网络连接参数用于反映当前服务器的网络拥塞情况,以及反映服务器当前的运行情况,例如,该网络连接参数包括服务器的内存占用率,例如,网络连接参数包括服务器的CPU(Central Processing Unit,中央处理器)使用率,例如,该网络连接参数包括当前连接的客户端数量,例如,该网络连接参数包括网络时延,例如,该网络连接参数包括网络丢包率,具体地,通过上述的网络连接参数能够很好地反映出服务器当前的运行状态以及连接的网络状态。
步骤103b,根据所述网络连接参数获取所述预设进程数。
例如,根据所述网络连接参数设置所述预设进程数,并获取预设进程数,例如,根据所述网络连接参数生成所述预设进程数,并获取预设进程数,本实施例中,预设进程数由服务器或系统自动生成或设置,具体地,系统根据网络连接参数设置预设进程数,预存至存储空间,在父进程启动后,从存储空间中获取该预设进程数。
本步骤中,根据网络参数获取的预设进程数,使得预设进程数与服务器当前的运行状态以及网络状态更为匹配,例如,预设进程数与服务器的内存占用率呈反相关函数关系,即服务器的内存占用率越大,则预设进程数越小,应该理解的是,服务器的内存占用率越大,表明当前服务器的负荷较大,因此,在服务器的负荷较大时,减小预设进程数,减小子进程的数量,进而减小与客户端的连接数量,进而使得服务器能够高效运行,提高数据转发效率,使得服务器资源得到合理利用。
例如,预设进程数与服务器的CPU使用率呈反相关函数关系,即CPU使用率越大,则预设进程数越小,减小对CPU资源的消耗,进而提升服务器的处理性能;例如,预设进程数与网络时延呈反相关函数关系,该网络时延为数据包的发送至接收的平均时长,该网络时延越大,则表明网络状态越不佳,则此时不利于大量的客户端接入,因此,预设进程数较小,有利于节省网络资源,避免网络拥塞;如,预设进程数与网络丢包率呈反相关函数关系,网络丢包率越高,则网络状态越不佳,容易造成数据包丢失,因此,本实施例中,预设进程数较小,有利于减小网络拥塞情况,降低网络丢包率,进而使得与客户端的连接更为稳定。
为了合理利用服务器的资源,使得客户端能够及时连接,在一个实施例中,如图1C所示,步骤105之后还包括:
步骤106a,检测所述进程池中是否存在退出状态的子进程。例如,在步骤107之前,在执行步骤107的过程中,或者在步骤107之后,执行步骤106a。又如,定时或者每间隔预设时间值执行一次步骤106a,例如,预设时间值为1、2、5、10或30min等。
步骤106b,当所述进程池中存在退出状态的子进程时,则创建子进程。
具体地,子进程的状态为退出状态,则表明该子进程已经结束,例如,该退出状态为结束状态。子进程的状态为退出状态,则相应的进程池内的子进程数量将减小,这样,在检测到客户端的连接请求时,将可能造成没有空闲的子进程与该客户端连接,因此,为了避免客户端无法连接,本实施例中,在检测到有子进程结束时,则新创建子进程,使得进程池的子进程数量维持,使得客户端能够及时连接,而新创建的子进程在等待客户端连接的过程中处于空闲状态,能够有效减小对服务器资源的占用,实现了服务器的资源的合理利用。
为了使得进程池的子进程数量恒定,以合理利用服务器的资源,在一个实施例中,步骤106b包括:当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;创建与所述退出状态的子进程数量相等的子进程。
具体地,本实施例中,当存在结束的子进程时,则获取已结束的子进程的数量,并创建与结束的子进程数量相等的子进程,使得进程池内的子进程数量维持为预设进程数,进而使得子进程的数量恒定,并使得在若干子进程结束后,能够及时创建子进程,能够及时地与后续请求连接的客户端进行连接,进而提高与客户端连接的效率,例如,创建后的子进程进入空闲状态,这样,一方面能够合理地利用服务器资源,使得后续接入的客户端能够及时地与服务器连接,另一方面,进入空闲状态的子进程,能够减小对服务器资源的占用,提高服务器性能。
为了进一步避免占用过多的服务器资源,有效提升了服务器的运行性能,在一个实施例中,如图1D所示,步骤109之后还包括:
步骤113,当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
具体地,当进程池中部存在空闲状态的子进程,而网络端口则接收到客户端的连接请求,此时,没有能够与客户端建立连接的空闲子进程,因此,本实施例中,对该客户端发出拒绝连接的消息,拒绝建立与该客户端的连接。由于进程池中的子进程的数量小于客户端的数量,且不因客户端的数量的增加而增加进程池中的子进程,使得子进程的数量维持在预设进程数这一数值,有效避免进程数过多,避免占用过多的服务器资源,有效提升了服务器的运行性能。
为了使得无法连接的客户端能够及时与服务器建立连接,例如,向所述客户端返回拒绝连接的响应消息,并向所述客户端发送进入队列消息,客户端响应该队列消息,排队等候,并在预设时间后再次向服务器发送连接请求,服务器再次接收到连接请求后,再次检测是否存在空闲状态的子进程,当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。这样,本实施例中,在各子进程均处于连接状态时,后续的客户端将无法建立与服务器的连接,为了使得这些后续的客户端能够接入服务器,服务器在向客户端发送拒绝连接的响应消息后,并请求客户端进入队列等候,在服务器存在空闲子进程时,则响应后续服务器的连接请求,建立连接,进而使得无法连接的客户端能够及时与服务器建立连接,提高服务器的转发效率。
在一个实施例中,步骤105之后还包括步骤:子进程进入空闲状态,等待客户端的连接请求。
具体地,在创建了预设进程数的子进程后,各子进程进入空闲状态,等待客户端的连接请求,并在网络端口接收到连接请求后,响应连接请求,逐一建立与客户端的连接。
在一个实施例中,步骤111之后还包括步骤:当子进程断开与客户端的连接后,子进程进入空闲状态。
本实施例中,当子进程断开与客户端的连接后,进入空闲状态,释放服务器资源,能够减小对资源的消耗。
例如,步骤111还包括:子进程通过通信套接字与客户端建立连接,接收客户端的数据,转发所述数据,当数据转发完毕后,关闭通信套接字,断开与客户端的连接。
为了提高数据的转发效率,例如,子进程与客户端建立的连接为非阻塞通信连接,这样,客户端向服务器发送数据后,无需等待服务器的响应即可执行下一步操作,而服务器向客户端发送数据后,也不需等待客户端的响应,直接执行下一步操作,这样,有效提高了转发效率。
在一个实施例中,如图2A所示,提供一种分布式计算数据转发装置,包括:
父进程创建模块210,用于创建父进程。
进程数获取模块220,用于获取预设进程数。
进程池创建模块230,用于创建进程池,所述进程池包括数量为所述预设进程数的子进程。
连接请求检测模块240,用于检测网络端口是否接收到客户端的连接请求。
空闲进程检测模块250,用于当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程。
连接建立模块260,用于当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
在一个实施例中,如图2B所示,所述进程数获取模块220包括:
网络参数获取单元221,用于获取网络连接参数;
进程数获取单元222,用于根据所述网络连接参数获取所述预设进程数。
在一个实施例中,如图2C所示,还包括:
退出状态检测模块270,用于检测所述进程池中是否存在退出状态的子进程;
子进程创建模块280,用于当所述进程池中存在退出状态的子进程时,则创建子进程。
在一个实施例中,如图2D所示,所述子进程创建模块280包括:
退出数量获取单元281,用于当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;
子进程创建单元282,用于创建与所述退出状态的子进程数量相等的子进程。
在一个实施例中,如图2E所示,还包括:
拒绝响应模块290,用于当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
应该说明的是,上述系统实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于可读取存储介质中。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式计算数据转发方法,其特征在于,包括:
获取预设进程数;
创建进程池,所述进程池包括数量为所述预设进程数的子进程;
检测网络端口是否接收到客户端的连接请求;
当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;
当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
2.根据权利要求1所述的分布式计算数据转发方法,其特征在于,所述获取预设进程数的步骤具体为:
获取网络连接参数;
根据所述网络连接参数获取所述预设进程数。
3.根据权利要求1所述的分布式计算数据转发方法,其特征在于,所述创建进程池的步骤之后还包括:
检测所述进程池中是否存在退出状态的子进程;
当所述进程池中存在退出状态的子进程时,则创建子进程。
4.根据权利要求3所述的分布式计算数据转发方法,其特征在于,所述当所述进程池中存在退出状态的子进程时,则创建子进程的步骤包括:
当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;
创建与所述退出状态的子进程数量相等的子进程。
5.根据权利要求1所述的分布式计算数据转发方法,其特征在于,所述检测所述进程池中是否存在空闲状态的子进程的步骤之后还包括:
当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
6.一种分布式计算数据转发装置,其特征在于,包括:
进程数获取模块,用于获取预设进程数;
进程池创建模块,用于创建进程池,所述进程池包括数量为所述预设进程数的子进程;
连接请求检测模块,用于检测网络端口是否接收到客户端的连接请求;
空闲进程检测模块,用于当检测到所述网络端口接收到客户端的连接请求时,则检测所述进程池中是否存在空闲状态的子进程;
连接建立模块,用于当检测到所述进程池中存在空闲状态的子进程时,则响应所述连接请求,将处于空闲状态的所述子进程中的一个建立与客户端的连接。
7.根据权利要求6所述的分布式计算数据转发装置,其特征在于,所述进程数获取模块包括:
网络参数获取单元,用于获取网络连接参数;
进程数获取单元,用于根据所述网络连接参数获取所述预设进程数。
8.根据权利要求6所述的分布式计算数据转发装置,其特征在于,还包括:
退出状态检测模块,用于检测所述进程池中是否存在退出状态的子进程;
子进程创建模块,用于当所述进程池中存在退出状态的子进程时,则创建子进程。
9.根据权利要求7所述的分布式计算数据转发装置,其特征在于,所述子进程创建模块包括:
退出数量获取单元,用于当所述进程池中存在退出状态的子进程,则获取所述退出状态的子进程的数量;
子进程创建单元,用于创建与所述退出状态的子进程数量相等的子进程。
10.根据权利要求6所述的分布式计算数据转发装置,其特征在于,还包括:
拒绝响应模块,用于当检测到所述进程池中不存在空闲状态的子进程时,则向客户端返回拒绝连接的响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710266456.6A CN107423118A (zh) | 2017-04-21 | 2017-04-21 | 分布式计算数据转发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710266456.6A CN107423118A (zh) | 2017-04-21 | 2017-04-21 | 分布式计算数据转发方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107423118A true CN107423118A (zh) | 2017-12-01 |
Family
ID=60423892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710266456.6A Pending CN107423118A (zh) | 2017-04-21 | 2017-04-21 | 分布式计算数据转发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423118A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
CN110046003A (zh) * | 2019-03-28 | 2019-07-23 | 广州越秀金融科技有限公司 | 数据处理方法、装置,存储介质和处理器 |
CN112764985A (zh) * | 2020-12-30 | 2021-05-07 | 中国人寿保险股份有限公司上海数据中心 | 一种数据中心系统智能监控方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN101702735A (zh) * | 2009-11-24 | 2010-05-05 | 恒生电子股份有限公司 | 一种tcp服务装置及方法 |
CN103067293A (zh) * | 2012-12-31 | 2013-04-24 | 北京京东世纪贸易有限公司 | 负载均衡设备的连接管理和复用的方法和系统 |
CN103441999A (zh) * | 2013-08-21 | 2013-12-11 | 好耶网络科技(上海)有限公司 | 一种套接字连接池控制方法 |
CN105573850A (zh) * | 2015-11-09 | 2016-05-11 | 广州多益网络科技有限公司 | 多进程交互方法、系统和服务器 |
-
2017
- 2017-04-21 CN CN201710266456.6A patent/CN107423118A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN101702735A (zh) * | 2009-11-24 | 2010-05-05 | 恒生电子股份有限公司 | 一种tcp服务装置及方法 |
CN103067293A (zh) * | 2012-12-31 | 2013-04-24 | 北京京东世纪贸易有限公司 | 负载均衡设备的连接管理和复用的方法和系统 |
CN103441999A (zh) * | 2013-08-21 | 2013-12-11 | 好耶网络科技(上海)有限公司 | 一种套接字连接池控制方法 |
CN105573850A (zh) * | 2015-11-09 | 2016-05-11 | 广州多益网络科技有限公司 | 多进程交互方法、系统和服务器 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
CN110046003A (zh) * | 2019-03-28 | 2019-07-23 | 广州越秀金融科技有限公司 | 数据处理方法、装置,存储介质和处理器 |
CN110046003B (zh) * | 2019-03-28 | 2023-03-28 | 广州越秀金融科技有限公司 | 数据处理方法、装置,存储介质和处理器 |
CN112764985A (zh) * | 2020-12-30 | 2021-05-07 | 中国人寿保险股份有限公司上海数据中心 | 一种数据中心系统智能监控方法 |
CN112764985B (zh) * | 2020-12-30 | 2024-05-17 | 中国人寿保险股份有限公司上海数据中心 | 一种数据中心系统智能监控方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104081736B (zh) | 客户端设备上调度分组传输的系统和方法 | |
WO2018133454A1 (zh) | 远程服务访问路径控制方法和相关设备 | |
CN101702121B (zh) | Windows系统中程序网络流速控制装置 | |
CN107423118A (zh) | 分布式计算数据转发方法和装置 | |
USRE44104E1 (en) | Cross-layer architecture for a network device | |
CN109756474B (zh) | 一种电力调度自动化系统的服务跨区域调用方法及装置 | |
CN110213214B (zh) | 一种攻击防护方法、系统、装置和存储介质 | |
CN104702627B (zh) | 一种基于报文分类的同步并发通信方法及系统 | |
Kliazovich et al. | CA-DAG: Communication-aware directed acyclic graphs for modeling cloud computing applications | |
CN102158406B (zh) | 面向计算机网络链路的智能选路方法 | |
KR20190029486A (ko) | 탄력적 허니넷 시스템 및 그 동작 방법 | |
CN100444566C (zh) | 一种多用户并发接入装置及其方法 | |
Araujo et al. | BEEP: Balancing energy, redundancy, and performance in fat-tree data center networks | |
CN108605292A (zh) | 电力知悉式网络通信 | |
CN102281263B (zh) | 一种建立iSCSI会话的方法和iSCSI发起方 | |
US10608889B2 (en) | High-level interface to analytics engine | |
CN110601989A (zh) | 一种网络流量均衡方法及装置 | |
CN113965521A (zh) | 数据包的传输方法、服务器及存储介质 | |
Ying et al. | Fast invalid TCP flow removal scheme for improving SDN scalability | |
US8683045B2 (en) | Intermediate network device for host-client communication | |
Misic et al. | Protocol architectures for IoT domains | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN114281534A (zh) | 长连接智能控制方法、系统、装置、电子设备及存储介质 | |
CN109951332B (zh) | 基于非对等网络的边缘计算设备组网方法、装置及系统 | |
CN106357798A (zh) | Portal页面中媒体文件的存储及获取方法、云控制器及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171201 |