CN102916953A - 基于tcp连接实现并发服务的方法及装置 - Google Patents
基于tcp连接实现并发服务的方法及装置 Download PDFInfo
- Publication number
- CN102916953A CN102916953A CN2012103878199A CN201210387819A CN102916953A CN 102916953 A CN102916953 A CN 102916953A CN 2012103878199 A CN2012103878199 A CN 2012103878199A CN 201210387819 A CN201210387819 A CN 201210387819A CN 102916953 A CN102916953 A CN 102916953A
- Authority
- CN
- China
- Prior art keywords
- tcp
- connects
- group
- processing threads
- client
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种基于TCP连接实现并发服务的方法及装置,预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;监听到客户端通过服务端口发起TCP连接请求,选取进程组中用于处理TCP连接请求的进程;触发选取的进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述;触发所述选取的进程中的检测线程读取生成的套接字文件描述中的数据;选取处理线程组中的处理线程,对检测线程读取的数据进行处理;所述选取的进程中的检测线程检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。应用本发明,可以提升可接入服务器的客户端数、减少资源开销。
Description
技术领域
本发明涉及计算机通信技术,尤其涉及一种基于传输控制协议(TCP,Transmission Control Protocol)连接实现并发服务的方法及装置。
背景技术
高性能计算技术是计算机技术的一个重要分支,具有高计算能力的计算机系统,可以实现更大的计算量、单位时间内能够处理更多的数据,从而为用户提供更好的服务。
现有的各TCP/IP服务器中,对于多用户的并发接入,一般采用多进程的方式,即对于每一个接入的用户请求,配置一个进程用于单独处理该请求。
图1为现有基于TCP连接实现并发服务的方法流程示意图。参见图1,该流程包括:
步骤101,服务器监听服务端口;
本步骤中,服务器配置用于接收客户端发起TCP连接的服务端口,通过监听该配置的服务端口,可以监听客户端发起的TCP连接。
步骤102,客户端向服务器监听的服务端口发起TCP连接;
本步骤中,服务器在配置服务端口后,将配置的服务端口信息通知各客户端,客户端在需要与服务器建立TCP连接时,通过该服务端口,向服务器发送TCP连接请求。
步骤103,服务器分配进程接收客户端的TCP连接请求,建立TCP连接,并且生成该TCP连接的socket fd;
本步骤中,在Unix/Linux系统下,一个套接字(socket)句柄,相当于一个文件,在socket上收发数据,相当于对一个文件进行读写,因而,一个socket句柄,通常也用表示文件句柄的文件描述(fd,file descriptor)来表示。每一客户端对应一个进程。
步骤104,服务器fork进程,读取并处理生成的socket fd中的数据;
本步骤中,服务器通过进程对socket fd中的数据进行处理。
步骤105,服务器的进程检测到客户端断开TCP连接,关闭该socket fd,销毁进程。
由上述可见,现有基于TCP连接实现并发服务的方法,服务器采用单进程方式接收客户端的TCP连接请求,生成TCP连接的socket fd,然后通过fork进程的方式来读取并且处理socket fd中的数据。这样,每一进程处理服务器依据每一客户端生成的socket fd中的数据,不利于数据的共享,同时,也增加了服务器的进程调度,且需要服务器为每一请求TCP连接的客户端创建和销毁进程,可接入的客户端数较少,导致服务器资源的压力较大,使得处理客户端的TCP连接请求延迟,极大地降低了对客户端请求响应的实时性。具体来说,存在如下技术问题:
第一,服务器通过单进程接收客户端的TCP连接请求并且获得TCP连接的socket fd,一个进程进行读取并且处理建立连接后为一个客户端生成的socket fd数据,客户端和服务器进程是一一对应的关系,导致大量并发的客户端需要大量的进程进行分别处理,造成了服务器进程资源的压力;
第二,由于采用的是单进程接收客户端的TCP连接并且获得TCP连接的socket fd,因此,为各客户端的socket fd数据进行共享带来了不方便;
第三,由于一个进程只能处理一个客户端的socket fd数据,等处理完socket fd数据又需要销毁进程,将导致频繁地创建和销毁进程,从而对服务器造成了较大的开销;
第四,在并发客户端较多时,由于产生大量的进程,将使得系统的进程调度变得十分频繁,造成处理客户端请求连接的延迟,极大地降低了服务器对客户端连接请求响应的实时性。
发明内容
本发明的实施例提供一种基于TCP连接实现并发服务的方法,提升可接入服务器的客户端数、减少资源开销。
本发明的实施例还提供一种基于TCP连接实现并发服务的装置,提升可接入服务器的客户端数、减少资源开销。
为达到上述目的,本发明实施例提供的一种基于TCP连接实现并发服务的方法,包括:
预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
监听到客户端通过服务端口发起TCP连接请求,选取进程组中用于处理TCP连接请求的进程;
触发选取的进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述;
触发所述选取的进程中的检测线程读取生成的套接字文件描述中的数据;
选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
所述选取的进程中的检测线程检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。
其中,所述方法进一步包括:
基于进程负载均衡的策略,通过预先设置的负载分配均衡算法选择进程,作为进程组中用于处理TCP连接请求的进程。
其中,所述通过预先设置的负载分配均衡算法选择进程包括:
获取进程组中每一进程维持TCP连接的客户端数;
获取进程组针对进程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程,从中选取一个进程。
其中,在获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程后,所述方法进一步包括:
对获取的每一进程维持TCP连接的客户端数所需的资源量进行排序。
其中,所述通过预先设置的负载分配均衡算法选择进程包括:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
其中,在生成该TCP连接的套接字文件描述后,所述方法进一步包括:
接收连接线程将套接字文件描述设置为非阻塞方式,并将该套接字文件描述添加到改进的轮询中进行套接字文件描述可读检测。
其中,所述方法进一步包括:
为每一个处理线程创建任务队列。
其中,所述任务队列的长度根据进程组、处理线程组以及处理线程组中包含的处理线程数确定。
其中,在选取处理线程组中的处理线程后,所述方法进一步包括:
处理线程将检测线程读取的套接字文件描述放入该处理线程的任务队列的队列尾。
其中,所述对检测线程读取的数据进行处理包括:
处理线程从任务队列的队列头取出套接字文件描述,读取并且处理该套接字文件描述;
处理线程处理完套接字文件描述中的数据,继续从任务队列中取出套接字文件描述进行处理,直到任务队列为空。
其中,所述选取处理线程组中的处理线程包括:
获取处理线程组中每一处理线程维持TCP连接的客户端数;
获取处理线程组针对处理线程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的处理线程,从中选取一个处理线程。
其中,所述选取处理线程组中的处理线程包括:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
一种基于传输控制协议TCP连接实现并发服务的装置,该装置包括:进程配置模块、监听模块、进程选取模块、TCP连接模块、数据读取模块、数据处理模块以及检测模块,其中,
进程配置模块,用于预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
监听模块,用于在监听到客户端通过服务端口发起的TCP连接请求后,向进程选取模块输出触发信息;
进程选取模块,用于根据触发信息,从进程配置模块中,选取进程组中用于处理TCP连接请求的进程;
TCP连接模块,用于根据进程选取模块选取的进程,触发进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述,向数据读取模块输出触发信息;
数据读取模块,用于根据接收的触发信息,触发进程中的检测线程读取生成的套接字文件描述中的数据;
数据处理模块,用于选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
检测模块,用于采用进程中的检测线程检测TCP连接模块,当检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。
较佳地,所述进程配置模块进一步用于为每一个处理线程创建任务队列。
较佳地,所述TCP连接模块在生成该TCP连接的套接字文件描述后,进一步用于通过接收连接线程将套接字文件描述设置为非阻塞方式,并将该套接字文件描述添加到改进的轮询中中进行套接字文件描述可读检测。
较佳地,所述数据读取模块在选取处理线程组中的处理线程后,进一步用于通过处理线程将检测线程读取的套接字文件描述放入该处理线程的任务队列的队列尾。
较佳地,所述进程选取模块包括:策略存储单元、第一获取单元、第二获取单元以及选取单元,其中,
策略存储单元,用于存储基于进程负载均衡的策略;
第一获取单元,用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组中每一进程维持TCP连接的客户端数;
第二获取单元,用于用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组针对进程维持TCP连接的客户端数平均值;
选取单元,用于从第一获取单元中,获取维持TCP连接的客户端数小于第二获取单元中维持TCP连接的客户端数平均值的进程,从中选取一个进程。
由上述技术方案可见,本发明实施例提供的一种基于TCP连接实现并发服务的方法及装置,预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;监听到客户端通过服务端口发起TCP连接请求,选取进程组中用于处理TCP连接请求的进程;触发选取的进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述;触发所述选取的进程中的检测线程读取生成的套接字文件描述中的数据;选取处理线程组中的处理线程,对检测线程读取的数据进行处理;所述选取的进程中的检测线程检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。这样,采用进程中的线程对客户端的TCP连接进行处理,由于一个进程包含有多个线程,而多个线程之间可以并发执行任务,可以提升可接入服务器的客户端数;服务器只需维护一个进程就可以实现多个客户端的TCP连接,无需频繁地创建和销毁进程,从而有效减少资源开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。
图1为现有基于TCP连接实现并发服务的方法流程示意图。
图2为本发明实施例基于TCP连接实现并发服务的方法流程示意图。
图3为本发明实施例基于TCP连接实现并发服务的方法具体流程示意图。
图4为本发明实施例基于TCP连接实现并发服务的装置结构示意图。
具体实施方式
以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
现有基于TCP连接实现并发服务的方法,服务器采用单进程方式接收客户端的TCP连接请求,并处理生成的socket fd中的数据。使得每一进程只能处理一个客户端的数据,使得可接入的客户端数较少;而每一服务器的进程数与CPU相关,数量有限,因而,使得服务器的资源压力大,为了降低服务器的资源压力,需要配置多个服务器群,使得实现并发服务的成本高;同时,也增加了服务器的进程调度,且创建和销毁进程频繁,资源开销大。
进程(process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位,也就是说,是包含一定资源的内存区域功能单元,操作系统利用进程,可以将工作划分为一些用进程表示的功能单元,一个功能单元中,包含有一个或多个执行单元,其中,执行单元称为线程(thread)。实际应用中,操作系统中的一个程序至少有一个进程,一个进程至少包含一个线程。
每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。线程依存在应用程序中,由应用程序执行控制,进程中的多个线程可以同时执行,通过与同属一个进程的其他线程,共享进程所拥有的全部资源。
本发明实施例中,考虑采用进程中的线程,对客户端的TCP连接进行处理,由于一个进程包含有多个线程,而多个线程之间可以并发执行任务,因而,可以有效提升可接入服务器的客户端数;进一步地,考虑到实际应用中,各客户端在向服务器监听的服务端口发起TCP连接时,一般是具有先后顺序的,很少有同时发起TCP连接的需求,因而,在线程处理任务时,设置任务队列,用于存储接收的客户端的数据,并依序进行处理任务队列中客户端的socket fd数据。这样,只需维护一个进程,可以实现多个客户端的TCP连接,服务器无需频繁地创建和销毁进程,从而有效降低了服务器的开销。
图2为本发明实施例基于TCP连接实现并发服务的方法流程示意图。参见图2,该流程包括:
步骤201,预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
本步骤中,考虑到一个进程包含有多个线程,而多个线程之间可以并发执行任务,因而,采用线程处理客户端的TCP连接。这样,可以有效提升可接入服务器的客户端数。其中,较佳地,为每一进程配置的接收连接线程为一个,检测线程为一个,处理线程组为一个,处理线程组中包含的处理线程为一个。
本发明实施例中,为每一服务器配置一个进程组,进程组中包含的进程个数可根据实际需要进行设置。
较佳地,该方法还进一步包括:
为每一个处理线程创建任务队列。
本步骤中,任务队列的长度根据进程组、处理线程组以及处理线程组中包含的处理线程数确定,较佳地,任务队列长度计算公式为:
式中,
L为任务队列长度;
W为进程组可接入的客户端数;
P为进程组中包含的进程数;
N为创建任务队列的进程中的处理线程组中包含的处理线程数。
步骤202,监听到客户端通过服务端口发起TCP连接请求,选取进程组中用于处理TCP连接请求的进程;
本步骤中,服务器监听服务端口,通过服务端口,监听客户端向服务器监听的服务端口发起的TCP连接请求,为该TCP连接请求选取进程组中的一个进程进行处理。选取的方式,可以是随机选取。
本发明实施例中,较佳地,在选取进程组中用于处理TCP连接请求的进程时,还可以考虑进程组中各进程的负载,则该方法进一步包括:
基于进程负载均衡的策略,通过预先设置的负载分配均衡算法选择进程,作为进程组中用于处理TCP连接请求的进程。
本步骤中,通过预先设置的负载分配均衡算法选择进程包括:
获取进程组中每一进程维持TCP连接的客户端数;
获取进程组针对进程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程,从中选取一个进程。
较佳地,在获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程后,还可以进一步包括:
对获取的每一进程维持TCP连接的客户端数所需的资源量进行排序。
当然,实际应用中,通过预先设置的负载分配均衡算法选择进程也可以包括:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
这样,考虑多进程间负载均衡的运用,实现了每一个进程能够服务客户端数的均衡,不会造成某些进程负载过重。
步骤203,触发选取的进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的socket fd;
本步骤中,通过进程中的接收连接线程建立TCP连接,并生成该TCP连接的socket fd,与通过现有技术中的进程建立TCP连接,并生成该TCP连接的socket fd相类似,在此不再赘述。
在生成该TCP连接的socket fd后,该方法进一步包括:
进程中的接收连接线程将socket fd设置为非阻塞方式,并将该socket fd添加到epoll中进行socket fd可读检测。
本步骤中,基于改进的轮询(epoll)的高效可读检测机制,可以实现高效的异步通知机制,当有数据时,能够高效地进行异步的通知,从而能够更加及时和高效地响应客户端的数据,对于服务器的并发量的提高和QoS的提高都有很大的帮助。
Socket fd包含两种方式,一种是阻塞模式,一种是非阻塞模式,本发明实施例中,采用非阻塞的方式能够避免cpu的阻塞等待。
步骤204,触发选取的进程中的检测线程读取生成的socket fd中的数据;
本步骤中,对于将该socket fd添加到epoll中进行socket fd可读检测的情形,读取生成的socket fd中的数据即是进程中的检测线程周期性取出epoll中的可读的socket fd。
步骤205,选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
本发明实施例中,在选取进程中的处理线程组中的处理线程后,该方法还可以进一步包括:
进程中的处理线程将检测线程读取的socket fd放入该处理线程的任务队列的队列尾。这样,对检测线程读取的数据进行处理包括:
进程中的处理线程从任务队列的队列头取出socket fd,读取并且处理该socket fd;
进程中的处理线程处理完socket fd中的数据,继续从任务队列中取出socket fd进行处理,直到任务队列为空。
本步骤中,选取处理线程组中的处理线程包括:
获取进程中的处理线程组中每一处理线程维持TCP连接的客户端数;
获取进程中的处理线程组针对处理线程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的处理线程,从中选取一个处理线程。
较佳地,在获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的处理线程后,还可以进一步包括:
对获取的每一处理线程维持TCP连接的客户端数所需的资源量进行排序。
当然,实际应用中,选取处理线程组中的处理线程也可以包括:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
这样,结合多线程的任务队列,对每一线程对应的任务队列,运用负载均衡,实现了每一个线程的任务数的均衡,不会造成某些线程负载过重;进一步地,先进先出任务队列的运用,对于客户端高并发时,使之能够放入任务队列,能够避免数据的丢失;而且,一个线程能够处理多个客户端的socket fd数据,极大地提高了线程的效率,相对于进程处理,也减少了处理客户端TCP连接请求的延迟,增加了对客户端请求响应的实时性。
步骤206,选取的进程中的检测线程检测到客户端断开TCP连接,关闭该socket fd,结束与该客户端的TCP连接。
本步骤中,进程中的检测线程检测到客户端断开TCP连接,关闭该socket fd,结束与该客户端的TCP连接后,进程仍处于连接状态,直至与该进程进行TCP连接的所有客户端都断开了TCP连接,才销毁该进程。这样,可以有效减少创建和销毁进程的次数,从而节约了频繁创建和销毁进程所需的资源开销;而采用进程组加上线程组的方式,多个客户端的数据能够很方便的进行共享。
图3为本发明实施例基于TCP连接实现并发服务的方法具体流程示意图。参见图3,该流程包括:
步骤301,在服务器中预先配置进程组;
本步骤中,较佳地,一个服务器中配置一个进程组,通过进程组中的进程接收并且处理客户端的TCP连接。进程组中包含的进程个数一般为服务器中包含的cpu个数,本发明实施例中,设置为8个。当然,实际应用中,也可以根据客户端数量进行设置,例如,根据TCP连接的客户端需求量,为6.5万客户端设置一个进程组。
步骤302,为进程组的每一个进程配置一个接收连接线程、一个检测线程以及一个处理线程组,并为每一个处理线程创建任务队列;
本步骤中,较佳地,任务队列的长度等于进程组对应的客户端数量(例如,6.5万)除以进程数以及创建任务队列的进程中的处理线程组中的处理线程数,本发明实施例中,进程组数为1,进程组包含的进程数为1,进程中的处理线程组数为1,每个处理线程组中的处理线程数设置为1个,因而,任务队列的长度可以设置为6.5万。
步骤303,服务器监听服务端口;
本步骤中,服务器配置用于接收客户端发起TCP连接的服务端口,通过监听该配置的服务端口,可以监听客户端发起的TCP连接。
步骤304,客户端向服务器监听的服务端口发起TCP连接请求;
步骤305,服务器根据预先设置的连接分配策略,选取进程组中的一个进程;
本步骤中,连接分配策略是基于负载均衡的策略,通过预先设置的负载分配均衡算法选择进程,具体如下:
获取进程组中每一进程维持TCP连接的客户端数;
获取进程组针对进程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程,从中选取一个进程。
本发明实施例中,统计每一个进程维持TCP连接的客户端数,同时计算该进程组的每一个进程维持TCP连接的客户端数的平均值,两者进行比较,获取维持TCP连接的客户端数小于平均值的进程,从中选取一个进程用于响应发起的TCP连接请求。
实际应用中,可以是从获取的进程中,随机选取一个进程;也可以对获取的进程,再按照预先设置的其它连接分配策略,例如,考虑获取的每一进程维持TCP连接的客户端数所需的资源量,进行排序后获取所需的一个进程。
较佳地,通过预先设置的负载均衡算法选择进程也可以是:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
步骤306,触发选取的进程的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的socket fd;
步骤307,接收连接线程将socket fd设置为非阻塞方式,并将该socketfd添加到epoll中进行socket fd可读检测;
本步骤中,进程中的接收连接线程也用于处理socket fd。
Socket fd包含两种方式,一种是阻塞模式,一种是非阻塞模式,阻塞模式会一直阻塞直到有数据,非阻塞模式则不会阻塞等待数据,关于阻塞模式以及非阻塞模式的详细描述,具体可参见相关技术文献,在此不再赘述。
改进的轮询(epoll)是Linux内核为处理大批量句柄提供的高效socketfd可读检测方法,可读检测方法包括:select、poll以及epoll,其中,epoll最为高效,关于epoll的详细描述,具体可参见相关技术文献,在此不再赘述。
将该socket fd添加到epoll中进行socket fd可读检测,具体可参见相关技术文献,在此不再赘述。
步骤308,服务器的检测线程周期性取出epoll中的可读的socket fd;
本步骤中,根据epoll提供的功能,如果添加到epoll中的socket fd可读,则进程中的检测线程可以通过epoll取出可读的socket fd。
步骤309,服务器按照预先设置的线程处理策略,选取处理线程组中的处理线程,将检测线程取出的socket fd放入该处理线程的任务队列的队列尾;
本步骤中,服务器选择进程的处理线程组中的某一处理线程的任务队列是基于预先设置的线程处理策略,本发明实施例中,线程处理策略基于任务队列负载均衡,任务队列负载均衡算法可以是进程中的处理线程组的每一个处理线程的任务队列都计算自己任务队列中的任务(socket fd)数,同时计算该进程中的处理线程组的每一个处理线程的任务队列中的任务数的平均值,当进程中的处理线程检查自己的任务队列中的任务数小于该进程中的处理线程组的平均值时,分配任务到该处理线程的任务队列中,放入队列尾。
步骤310,服务器触发进程的处理线程组中的该处理线程;
本步骤中,如果任务队列为空,表示进程中的处理线程已处理完所有任务,重新触发该进程中的处理线程进行任务处理。如果不为空,则进程中的处理线程正在处理任务,则忽略该步骤。
步骤311,处理线程组中的处理线程从任务队列的队列头取出socketfd,读取并且处理该socket fd;
本步骤中,取出socket fd之后,读取并且处理socket fd中的数据。
步骤312,处理线程组中的处理线程处理完socket fd中的数据,继续从任务队列中取出socket fd进行处理,直到任务队列为空;
本步骤中,服务器进程中的处理线程会一直从任务队列中取出任务运行,当队列为空时就等待,当发现有任务时就继续运行。
步骤313,进程的检测线程检测到客户端断开TCP连接,将socket fd从epoll中删除并且关闭该socket fd,结束TCP连接。
至此,基于TCP连接实现并发服务的流程结束。
本发明实施例中,经过客户端的实际模拟压力测试,测试环境是8台服务器,每一台服务器可接入的客户端数6万,8台服务器总共可接入48万客户端。每一服务器配置8个cpu,对应一个进程组,每一进程组中包含的进程数设置为8,每一进程中设置的线程组中,处理线程数设置为1,任务队列的长度设置为6万。启动8个进程组,即每一服务器对应的进程组能够处理6万个客户端的数据,8台服务器总共能够处理48万客户端的数据,每一服务器的8个进程,总的处理能力是每秒钟处理6万个客户端的TCP连接请求,这样,由8台服务器组成的服务器群,能够接入的并发客户端数是48万。
由上述可见,本发明实施例基于TCP连接实现并发服务的方法,服务器采用进程中的接收连接线程、检测线程以及处理线程组来实现接收客户端的TCP连接请求,并获得TCP连接的socket fd,通过非阻塞的socket fd方法,结合epoll的高效socket fd可读检测,以及处理线程组以及任务队列的方式,高效的读取并且处理socket fd中的数据,客户端和进程是多对一的关系,提升了可接入服务器的客户端数,有利于数据的共享,减少了服务器的进程调度,也减少了进行频繁创建和销毁进程导致的资源开销,提高了处理socket fd数据的效率,减少了服务器资源的压力,极大的减少了处理客户端的连接请求的延迟,增加了对于客户端请求响应的实时性,对于服务器的并发量的提高和QoS的提高都有很大的帮助。具体来说,具有如下有益技术效果:
第一,基于epoll的高效可读检测机制,epoll实现了一个高效的异步通知机制,当有数据时,能够高效地进行异步的通知,能够更加及时和高效地响应客户端的数据,对于服务器的并发量的提高和QoS的提高都有很大的帮助。
第二,非阻塞的运用,采用非阻塞的方式能够避免cpu的阻塞等待。
第三,多线程的运用,实现了单个进程组能够服务6.5万用户,提升了服务器可接入的客户端数,降低了服务器的进程资源压力。
第四,多进程间负载均衡的运用,实现了每一个进程能够服务客户端数的均衡,不会造成某些进程负载过重。
第五,多线程的队列的负载均衡的运用,实现了每一个线程的任务数的均衡,不会造成某些线程负载过重。
第六,先进先出任务队列的运用,对于客户端高并发时,能够避免数据的丢失,使之能够放入任务队列,后续再进行处理,同时先到达的请求先处理。
第七,由于采用的是进程组加上线程组的方式,所以多个客户端的数据能够很方便的共享。
第八,由于采用了进程组和线程组的方法,因而能够极大地减少服务器资源的开销,不会频繁地创建和删除进程,提高了服务器的效率。
第九,由于采用了任务队列的方法,一个线程能够处理多个客户端的socket fd数据,极大地提高了线程的效率,一个进程可以并发处理多个客户端的TCP连接请求,极大的减少了处理客户端TCP连接请求的延迟,增加了对客户端请求响应的实时性。
图4为本发明实施例基于TCP连接实现并发服务的装置结构示意图。参见图4,该装置为服务器,包括:进程配置模块、监听模块、进程选取模块、TCP连接模块、数据读取模块、数据处理模块以及检测模块,其中,
进程配置模块,用于预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
本发明实施例中,进程配置模块进一步用于为每一个处理线程创建任务队列。任务队列的长度根据进程组、处理线程组以及处理线程组中包含的处理线程数确定。
监听模块,用于在监听到客户端通过服务端口发起的TCP连接请求后,向进程选取模块输出触发信息;
进程选取模块,用于根据触发信息,从进程配置模块中,选取进程组中用于处理TCP连接请求的进程;
本发明实施例中,进程选取模块包括:策略存储单元、第一获取单元、第二获取单元以及选取单元(图中未示出),其中,
策略存储单元,用于存储基于进程负载均衡的策略;
第一获取单元,用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组中每一进程维持TCP连接的客户端数;
第二获取单元,用于用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组针对进程维持TCP连接的客户端数平均值;
选取单元,用于从第一获取单元中,获取维持TCP连接的客户端数小于第二获取单元中维持TCP连接的客户端数平均值的进程,从中选取一个进程。
TCP连接模块,用于根据进程选取模块选取的进程,触发进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的socket fd,向数据读取模块输出触发信息;
本发明实施例中,TCP连接模块在生成该TCP连接的socket fd后,进一步用于通过接收连接线程将socket fd设置为非阻塞方式,并将该socket fd添加到epoll中进行socket fd可读检测。
数据读取模块,用于根据接收的触发信息,触发进程中的检测线程读取生成的socket fd中的数据;
本发明实施例中,数据读取模块在选取处理线程组中的处理线程后,还可以进一步用于通过处理线程将检测线程读取的socket fd放入该处理线程的任务队列的队列尾。
数据处理模块,用于选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
检测模块,用于采用进程中的检测线程检测TCP连接模块,当检测到客户端断开TCP连接,关闭该socket fd,结束与该客户端的TCP连接。
显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
Claims (10)
1.一种基于传输控制协议TCP连接实现并发服务的方法,包括:
预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
监听到客户端通过服务端口发起TCP连接请求,选取进程组中用于处理TCP连接请求的进程;
触发选取的进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述;
触发所述选取的进程中的检测线程读取生成的套接字文件描述中的数据;
选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
所述选取的进程中的检测线程检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。
2.根据权利要求1所述的方法,其中,所述方法进一步包括:
基于进程负载均衡的策略,通过预先设置的负载分配均衡算法选择进程,作为进程组中用于处理TCP连接请求的进程。
3.根据权利要求2所述的方法,其中,所述通过预先设置的负载分配均衡算法选择进程包括:
获取进程组中每一进程维持TCP连接的客户端数;
获取进程组针对进程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程,从中选取一个进程。
4.根据权利要求3所述的方法,其中,在获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的进程后,所述方法进一步包括:
对获取的每一进程维持TCP连接的客户端数所需的资源量进行排序。
5.根据权利要求2所述的方法,其中,所述通过预先设置的负载分配均衡算法选择进程包括:
获取进程组中每一进程维持TCP连接的客户端数;
选取进程组中维持TCP连接的客户端数最少的进程。
6.根据权利要求1所述的方法,其中,在生成该TCP连接的套接字文件描述后,所述方法进一步包括:
接收连接线程将套接字文件描述设置为非阻塞方式,并将该套接字文件描述添加到改进的轮询中进行套接字文件描述可读检测。
7.根据权利要求1至6任一项所述的方法,其中,所述方法进一步包括:
为每一个处理线程创建任务队列。
8.根据权利要求7所述的方法,其中,所述选取处理线程组中的处理线程包括:
获取处理线程组中每一处理线程维持TCP连接的客户端数;
获取处理线程组针对处理线程维持TCP连接的客户端数平均值;
获取维持TCP连接的客户端数小于维持TCP连接的客户端数平均值的处理线程,从中选取一个处理线程。
9.一种基于传输控制协议TCP连接实现并发服务的装置,其特征在于,该装置包括:进程配置模块、监听模块、进程选取模块、TCP连接模块、数据读取模块、数据处理模块以及检测模块,其中,
进程配置模块,用于预先在服务器中为进程组中的每一进程配置接收连接线程、检测线程以及处理线程组;
监听模块,用于在监听到客户端通过服务端口发起的TCP连接请求后,向进程选取模块输出触发信息;
进程选取模块,用于根据触发信息,从进程配置模块中,选取进程组中用于处理TCP连接请求的进程;
TCP连接模块,用于根据进程选取模块选取的进程,触发进程中的接收连接线程接收客户端的TCP连接请求,建立TCP连接,并生成该TCP连接的套接字文件描述,向数据读取模块输出触发信息;
数据读取模块,用于根据接收的触发信息,触发进程中的检测线程读取生成的套接字文件描述中的数据;
数据处理模块,用于选取处理线程组中的处理线程,对检测线程读取的数据进行处理;
检测模块,用于采用进程中的检测线程检测TCP连接模块,当检测到客户端断开TCP连接,关闭该套接字文件描述,结束与该客户端的TCP连接。
10.根据权利要求9所述的装置,其特征在于,所述进程选取模块包括:策略存储单元、第一获取单元、第二获取单元以及选取单元,其中,
策略存储单元,用于存储基于进程负载均衡的策略;
第一获取单元,用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组中每一进程维持TCP连接的客户端数;
第二获取单元,用于用于根据触发信息以及策略存储单元存储的策略,从进程配置模块中,获取进程组针对进程维持TCP连接的客户端数平均值;
选取单元,用于从第一获取单元中,获取维持TCP连接的客户端数小于第二获取单元中维持TCP连接的客户端数平均值的进程,从中选取一个进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387819.9A CN102916953B (zh) | 2012-10-12 | 2012-10-12 | 基于tcp连接实现并发服务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387819.9A CN102916953B (zh) | 2012-10-12 | 2012-10-12 | 基于tcp连接实现并发服务的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102916953A true CN102916953A (zh) | 2013-02-06 |
CN102916953B CN102916953B (zh) | 2016-03-09 |
Family
ID=47615187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210387819.9A Active CN102916953B (zh) | 2012-10-12 | 2012-10-12 | 基于tcp连接实现并发服务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102916953B (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441999A (zh) * | 2013-08-21 | 2013-12-11 | 好耶网络科技(上海)有限公司 | 一种套接字连接池控制方法 |
CN103605568A (zh) * | 2013-10-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN103685480A (zh) * | 2013-11-29 | 2014-03-26 | 云海创想信息技术(无锡)有限公司 | 一种传输控制协议网络实现方法以及一种服务器 |
CN103746977A (zh) * | 2013-12-27 | 2014-04-23 | 东软熙康健康科技有限公司 | 一种Linux服务器的连接方法和装置 |
CN104503853A (zh) * | 2014-12-25 | 2015-04-08 | 般固(北京)科技股份有限公司 | 一种Linux系统上的多进程服务器程序的会话保持方法 |
CN104750545A (zh) * | 2013-12-27 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种调度进程的方法及装置 |
CN105721342A (zh) * | 2016-02-24 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 多进程设备的网络连接方法和系统 |
CN106254362A (zh) * | 2016-08-15 | 2016-12-21 | 杭州当虹科技有限公司 | 一种共享sdi数据的方法 |
CN106302554A (zh) * | 2016-11-08 | 2017-01-04 | 郑州云海信息技术有限公司 | 一种socket通信方法、装置和存储设备 |
WO2017041398A1 (zh) * | 2015-09-08 | 2017-03-16 | 安一恒通(北京)科技有限公司 | 数据传输方法和装置 |
CN106549955A (zh) * | 2016-11-01 | 2017-03-29 | 大唐软件技术股份有限公司 | 一种实现数据通讯的方法及系统 |
CN106656436A (zh) * | 2016-09-29 | 2017-05-10 | 安徽华速达电子科技有限公司 | 一种基于智能光网络单元的通信管理方法和系统 |
CN106790022A (zh) * | 2016-12-14 | 2017-05-31 | 福建天泉教育科技有限公司 | 基于多查询线程的通信方法及其系统 |
CN107135279A (zh) * | 2017-07-07 | 2017-09-05 | 网宿科技股份有限公司 | 一种处理长连接建立请求的方法和装置 |
CN107666474A (zh) * | 2016-07-30 | 2018-02-06 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
CN107707672A (zh) * | 2017-10-31 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种负载均衡的代码重构的方法、装置及设备 |
CN107729139A (zh) * | 2017-09-18 | 2018-02-23 | 北京京东尚科信息技术有限公司 | 一种并发获取资源的方法和装置 |
CN108259370A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 数据传输的方法及装置 |
CN108459915A (zh) * | 2018-01-31 | 2018-08-28 | 中电福富信息科技有限公司 | 一种适用于高并发场景的tcp通道管理系统及其方法 |
CN108647104A (zh) * | 2018-05-15 | 2018-10-12 | 北京五八信息技术有限公司 | 请求处理方法、服务器及计算机可读存储介质 |
CN109727595A (zh) * | 2018-12-29 | 2019-05-07 | 神思电子技术股份有限公司 | 一种语音识别服务器的软件设计方法 |
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
CN109922159A (zh) * | 2019-03-27 | 2019-06-21 | 宁波大学 | 一种物联网设备间云端双向虚拟连接的方法 |
CN109947081A (zh) * | 2019-03-25 | 2019-06-28 | 钛马信息网络技术有限公司 | 网联车辆控制方法及装置 |
CN110166322A (zh) * | 2019-05-29 | 2019-08-23 | 广东电网有限责任公司 | 一种计量自动化终端的检测方法和相关装置 |
CN110177026A (zh) * | 2019-05-17 | 2019-08-27 | 深圳创维-Rgb电子有限公司 | 一种网口端子的检测方法、存储介质及服务器 |
CN110300176A (zh) * | 2019-07-02 | 2019-10-01 | 斯德沃(深圳)网络科技有限公司 | 一种数据库rpc服务器的工作方法和数据库rpc服务器 |
CN111343239A (zh) * | 2020-02-10 | 2020-06-26 | 中国银联股份有限公司 | 通信请求处理方法、通信方法、通信请求处理装置以及交易系统 |
CN112069146A (zh) * | 2020-09-08 | 2020-12-11 | 北京同有飞骥科技股份有限公司 | 提高基于zfs文件系统异步远程复制的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702735A (zh) * | 2009-11-24 | 2010-05-05 | 恒生电子股份有限公司 | 一种tcp服务装置及方法 |
CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
-
2012
- 2012-10-12 CN CN201210387819.9A patent/CN102916953B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702735A (zh) * | 2009-11-24 | 2010-05-05 | 恒生电子股份有限公司 | 一种tcp服务装置及方法 |
CN102546437A (zh) * | 2012-02-20 | 2012-07-04 | 南京邮电大学 | 一种面向物联网平台的套接字实现方法 |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441999A (zh) * | 2013-08-21 | 2013-12-11 | 好耶网络科技(上海)有限公司 | 一种套接字连接池控制方法 |
CN103605568B (zh) * | 2013-10-29 | 2017-10-31 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN103605568A (zh) * | 2013-10-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN103685480A (zh) * | 2013-11-29 | 2014-03-26 | 云海创想信息技术(无锡)有限公司 | 一种传输控制协议网络实现方法以及一种服务器 |
CN104750545A (zh) * | 2013-12-27 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种调度进程的方法及装置 |
CN103746977A (zh) * | 2013-12-27 | 2014-04-23 | 东软熙康健康科技有限公司 | 一种Linux服务器的连接方法和装置 |
CN104503853A (zh) * | 2014-12-25 | 2015-04-08 | 般固(北京)科技股份有限公司 | 一种Linux系统上的多进程服务器程序的会话保持方法 |
WO2017041398A1 (zh) * | 2015-09-08 | 2017-03-16 | 安一恒通(北京)科技有限公司 | 数据传输方法和装置 |
CN105721342B (zh) * | 2016-02-24 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 多进程设备的网络连接方法和系统 |
CN105721342A (zh) * | 2016-02-24 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 多进程设备的网络连接方法和系统 |
CN107666474A (zh) * | 2016-07-30 | 2018-02-06 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
CN113259415A (zh) * | 2016-07-30 | 2021-08-13 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
US11218570B2 (en) | 2016-07-30 | 2022-01-04 | Huawei Technologies Co., Ltd. | Network packet processing method and apparatus and network server |
CN113259415B (zh) * | 2016-07-30 | 2023-03-10 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
US11689646B2 (en) | 2016-07-30 | 2023-06-27 | Huawei Technologies Co., Ltd. | Network packet processing method and apparatus and network server |
WO2018023988A1 (zh) * | 2016-07-30 | 2018-02-08 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
CN106254362A (zh) * | 2016-08-15 | 2016-12-21 | 杭州当虹科技有限公司 | 一种共享sdi数据的方法 |
CN106656436A (zh) * | 2016-09-29 | 2017-05-10 | 安徽华速达电子科技有限公司 | 一种基于智能光网络单元的通信管理方法和系统 |
CN106549955A (zh) * | 2016-11-01 | 2017-03-29 | 大唐软件技术股份有限公司 | 一种实现数据通讯的方法及系统 |
CN106302554A (zh) * | 2016-11-08 | 2017-01-04 | 郑州云海信息技术有限公司 | 一种socket通信方法、装置和存储设备 |
CN106790022B (zh) * | 2016-12-14 | 2019-06-18 | 福建天泉教育科技有限公司 | 基于多查询线程的通信方法及其系统 |
CN106790022A (zh) * | 2016-12-14 | 2017-05-31 | 福建天泉教育科技有限公司 | 基于多查询线程的通信方法及其系统 |
CN108259370A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 数据传输的方法及装置 |
US10791166B2 (en) | 2017-07-07 | 2020-09-29 | Wangsu Science & Technology Co., Ltd. | Method and device for processing persistent connection establishment request |
CN107135279A (zh) * | 2017-07-07 | 2017-09-05 | 网宿科技股份有限公司 | 一种处理长连接建立请求的方法和装置 |
WO2019006808A1 (zh) * | 2017-07-07 | 2019-01-10 | 网宿科技股份有限公司 | 一种处理长连接建立请求的方法和装置 |
CN107729139B (zh) * | 2017-09-18 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 一种并发获取资源的方法和装置 |
CN107729139A (zh) * | 2017-09-18 | 2018-02-23 | 北京京东尚科信息技术有限公司 | 一种并发获取资源的方法和装置 |
CN107707672A (zh) * | 2017-10-31 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种负载均衡的代码重构的方法、装置及设备 |
CN107707672B (zh) * | 2017-10-31 | 2021-01-08 | 苏州浪潮智能科技有限公司 | 一种负载均衡的代码重构的方法、装置及设备 |
CN108459915A (zh) * | 2018-01-31 | 2018-08-28 | 中电福富信息科技有限公司 | 一种适用于高并发场景的tcp通道管理系统及其方法 |
CN108647104A (zh) * | 2018-05-15 | 2018-10-12 | 北京五八信息技术有限公司 | 请求处理方法、服务器及计算机可读存储介质 |
CN108647104B (zh) * | 2018-05-15 | 2022-05-31 | 北京五八信息技术有限公司 | 请求处理方法、服务器及计算机可读存储介质 |
CN109727595A (zh) * | 2018-12-29 | 2019-05-07 | 神思电子技术股份有限公司 | 一种语音识别服务器的软件设计方法 |
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
CN109889406B (zh) * | 2019-02-02 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
CN109947081A (zh) * | 2019-03-25 | 2019-06-28 | 钛马信息网络技术有限公司 | 网联车辆控制方法及装置 |
CN109947081B (zh) * | 2019-03-25 | 2020-12-01 | 钛马信息网络技术有限公司 | 网联车辆控制方法及装置 |
CN109922159B (zh) * | 2019-03-27 | 2021-10-08 | 宁波大学 | 一种物联网设备间云端双向虚拟连接的方法 |
CN109922159A (zh) * | 2019-03-27 | 2019-06-21 | 宁波大学 | 一种物联网设备间云端双向虚拟连接的方法 |
CN110177026A (zh) * | 2019-05-17 | 2019-08-27 | 深圳创维-Rgb电子有限公司 | 一种网口端子的检测方法、存储介质及服务器 |
CN110166322A (zh) * | 2019-05-29 | 2019-08-23 | 广东电网有限责任公司 | 一种计量自动化终端的检测方法和相关装置 |
CN110166322B (zh) * | 2019-05-29 | 2020-11-10 | 广东电网有限责任公司 | 一种计量自动化终端的检测方法和相关装置 |
CN110300176A (zh) * | 2019-07-02 | 2019-10-01 | 斯德沃(深圳)网络科技有限公司 | 一种数据库rpc服务器的工作方法和数据库rpc服务器 |
CN111343239A (zh) * | 2020-02-10 | 2020-06-26 | 中国银联股份有限公司 | 通信请求处理方法、通信方法、通信请求处理装置以及交易系统 |
CN112069146A (zh) * | 2020-09-08 | 2020-12-11 | 北京同有飞骥科技股份有限公司 | 提高基于zfs文件系统异步远程复制的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102916953B (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102916953A (zh) | 基于tcp连接实现并发服务的方法及装置 | |
Kliazovich et al. | CA-DAG: Modeling communication-aware applications for scheduling in cloud computing | |
CN109451072A (zh) | 一种基于Kafka的消息缓存系统和方法 | |
US20180004568A1 (en) | Distributed task system and service processing method based on internet of things | |
CN101951411A (zh) | 云调度系统及方法以及多级云调度系统 | |
CN103412786A (zh) | 一种高性能服务器架构系统及数据处理方法 | |
CN111580995A (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
CN103516744A (zh) | 一种数据处理的方法和应用服务器及集群 | |
CN105320570B (zh) | 资源管理方法和系统 | |
CN106790022B (zh) | 基于多查询线程的通信方法及其系统 | |
CN102855218A (zh) | 数据处理系统、方法及装置 | |
CN113422842B (zh) | 一种考虑网络负载的分布式电力用电信息数据采集系统 | |
US8606908B2 (en) | Wake-up server | |
CN106657099B (zh) | 一种Spark数据分析服务发布系统 | |
CN102571568A (zh) | 任务处理方法及装置 | |
CN103955436A (zh) | 一种数据处理装置和终端 | |
CN105786909A (zh) | 一种自适应消息队列积压负载的应用触发方法和系统 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN114710571B (zh) | 数据包处理系统 | |
CN104468710A (zh) | 一种混合大数据处理系统及处理方法 | |
CN109889406A (zh) | 用于管理网络连接的方法、装置、设备和存储介质 | |
CN103823712A (zh) | 一种多cpu虚拟机系统的数据流处理方法和装置 | |
CN109508323A (zh) | 一种文件存储系统及文件存储方法 | |
CN115562846A (zh) | 一种资源调度的方法、装置及计算节点 | |
Suwandika et al. | Increasing SDN network performance using load balancing scheme on web server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170123 Address after: 266100 Shandong Province, Qingdao city Laoshan District Songling Road No. 399 Patentee after: Poly Polytron Technologies Inc Address before: 266061 Laoshan, Qingdao province Hongkong District No. East Road, room 248, room 131 Patentee before: Hisense Media Networks Co., Ltd. |