CN107135279B - 一种处理长连接建立请求的方法和装置 - Google Patents
一种处理长连接建立请求的方法和装置 Download PDFInfo
- Publication number
- CN107135279B CN107135279B CN201710550234.7A CN201710550234A CN107135279B CN 107135279 B CN107135279 B CN 107135279B CN 201710550234 A CN201710550234 A CN 201710550234A CN 107135279 B CN107135279 B CN 107135279B
- Authority
- CN
- China
- Prior art keywords
- long connection
- processing
- establishment request
- connection establishment
- processing process
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种处理长连接建立请求的方法和装置,属于网络通信技术领域。所述方法包括:接收客户端发送的长连接建立请求;根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;使用所述第一处理进程处理所述长连接建立请求。采用本发明,可以提高网络业务服务端的处理资源的利用率。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种处理长连接建立请求的方法和装置。
背景技术
随着网络技术的飞速发展,网络业务也更加多样和复杂。目前基于TCP(传输控制协议,Transmission Control Protocol)连接的网络业务可以包含长连接和短连接两种连接方式。
长连接多用于操作频繁,点对点的通讯。用户终端可以与服务方提供的客户端建立有TCP连接,同时,客户端可以和服务端建立有TCP连接。
上述TCP连接建立后,在被释放之前,可以保持TCP连接不断开,这样,当用户终端和服务端存在数据交互需求时,可以通过客户端与服务端进行数据交互,每次数据交互都可以基于已建立的TCP连接发送数据包,无需重复建立TCP连接,故而可以有效节省用于建立TCP连接所耗费的处理资源。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
客户端与服务端建立长连接后,服务端一般通过多个处理进程分别维持多个客户端的长连接,而由于用户终端发起业务的无序性,会出现服务端中某个处理进程超负荷运行时,其它处理进程处于闲置状态的情况,这样,服务端的处理资源利用率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种处理长连接建立请求的方法和装置。所述技术方案如下:
第一方面,提供了一种处理长连接建立请求的方法,所述方法包括:
接收客户端发送的长连接建立请求;
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;
使用所述第一处理进程处理所述长连接建立请求。
可选的,所述接收客户端发送的长连接建立请求,包括:
按照预设接收顺序确定第二处理进程,通过所述第二处理进程接收客户端发送的长连接建立请求。
可选的,所述方法还包括:
通过所述第二处理进程,使用SOCKET套接字,将所述长连接建立请求转发至管理进程;
所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
根据本地存储的各处理进程的当前长连接数目,通过所述管理进程确定所述当前长连接数目最少的第一处理进程。
可选的,所述接收客户端发送的长连接建立请求之后,还包括:
如果所述长连接建立请求中携带有第三处理进程的标识信息,则使用所述第三处理进程处理所述长连接建立请求;
所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
如果所述长连接建立请求中未携带有任意处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程。
可选的,所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的预设数目个处理进程;
获取所述长连接建立请求中携带的所述客户端的标识信息,在所述预设数目个处理进程中,确定与所述客户端已建立的长连接数目最少的第一处理进程。
第二方面,提供了一种处理长连接建立请求的装置,所述装置包括:
接收模块,用于接收客户端发送的长连接建立请求;
确定模块,用于根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;
处理模块,用于使用所述第一处理进程处理所述长连接建立请求。
可选的,所述接收模块,具体用于:
按照预设接收顺序确定第二处理进程,通过所述第二处理进程接收客户端发送的长连接建立请求。
可选的,所述装置还包括:
转发模块,用于通过所述第二处理进程,使用SOCKET套接字,将所述长连接建立请求转发至管理进程;
所述确定模块,具体用于:
根据本地存储的各处理进程的当前长连接数目,通过所述管理进程确定所述当前长连接数目最少的第一处理进程。
可选的,所述处理模块,还用于:
在接收客户端发送的长连接建立请求之后,如果所述长连接建立请求中携带有第三处理进程的标识信息,则使用所述第三处理进程处理所述长连接建立请求;
所述确定模块,具体用于:
如果所述长连接建立请求中未携带有任意处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程。
可选的,所述确定模块,具体用于:
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的预设数目个处理进程;
获取所述长连接建立请求中携带的所述客户端的标识信息,在所述预设数目个处理进程中,确定与所述客户端已建立的长连接数目最少的第一处理进程。
第三方面,提供了一种服务端,所述服务端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的处理长连接建立请求的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的处理长连接建立请求的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,服务端接收客户端发送的长连接建立请求,根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程,使用第一处理进程处理长连接建立请求。这样,在需要和客户端建立长连接时,服务端可以在所有处理进程中选择负载最低的处理进程进行处理,从而可以使多个处理进程的负载均衡,提高了服务端的处理资源的利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种处理长连接建立请求的场景示意图;
图2是本发明实施例提供的一种处理长连接建立请求的方法流程图;
图3是本发明实施例提供的一种处理长连接建立请求的系统结构图;
图4是本发明实施例提供的一种处理长连接建立请求的步骤示意图;
图5是本发明实施例提供的一种处理长连接建立请求的装置结构示意图;
图6是本发明实施例提供的一种处理长连接建立请求的装置结构示意图;
图7是本发明实施例提供的一种服务端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种处理长连接建立请求的方法,该方法的执行主体为服务端,服务端可以是提供网络业务的任意服务端,网络业务可以是云宽带业务、云专线业务等。服务端上可以运行有多个用于负责网络业务的处理进程,每个处理进程均可以支持至少一个与客户端的长连接。此处的客户端可以是服务方提供的客户端,分别部署在不同区域,用于辅助执行各区域中用户终端发起的网络业务。
具体场景可以参考图1,用户终端可以与上述客户端建立连接,然后通过客户端和服务端之间的长连接,与服务端进行数据交互。
上述服务端中可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的处理长连接建立请求的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据,如用于接收客户端发送的消息,向客户端返回数据等。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,服务端接收客户端发送的长连接建立请求。
在实施中,网络业务的服务方可以在业务覆盖范围内的各区域中部署客户端,用于辅助用户终端户进行网络业务。
一方面,客户端上可以同时运行多个处理进程,主要负责与服务端的长连接建立/释放和长连接数据的发送,客户端的各处理进程可以通过TCP协议与服务端建立长连接,客户端的各处理进程与服务端的长连接的建立和释放相互独立,互不干扰。
客户端在进入工作状态后,主进程启动,并根据配置文件创建管理进程和处理进程,并由处理进程监听服务端口,以接收用户终端发送的网络业务数据。进而,客户端可以通过与服务端建立的长连接,将用户终端发送的网络业务数据转发至服务端。此处,客户端可以检测当前长连接的负载情况,如果长连接的负载打到某一阈值,则可以动态添加长连接的数量,即向服务端发送长连接建立请求。同理,如果客户端在检测过程中,发现空闲的长连接数量大于预设阈值时,则可以动态的释放部分长连接。客户端的管理进程可以用于处理进程的管理,可以包含故障检测,负载统计等。
另一方面,服务端上可以同时运行多个处理进程,具体的,服务端工作时,启动主进程,根据配置文件创建管理进程和处理进程,并可以建立管理进程和每个处理进程的连接,且通过管理进程记录各个处理进程的负载信息。当客户端检测出需要与服务端建立新的长连接,并向服务端发送长连接建立请求后,服务端可以接收到相应的长连接建立请求。
可选的,服务端可以通过多个处理进程轮流接收长连接建立请求,相应的,步骤201的处理可以如下:按照预设接收顺序确定第二处理进程,通过第二处理进程接收客户端发送的长连接建立请求。
在实施中,服务端可以设置有用于接收长连接建立请求的统一的服务端口,多个处理进程均可以对该服务端口进行监听,当有长连接建立请求到达时,服务端可以按照预设接收顺序,唤醒一个处理进程(即第二处理进程),然后通过第二处理进程接收客户端发送的长连接建立请求。此处,预设接收顺序可以是每个处理进程的编号的排布顺序,也可以是每个处理进程的已建立的长连接数目的大小顺序,还可以是技术人员自行设置的其它顺序等。值得一提的是,此处选择了多个处理进程同时监听服务端口,相比于使用单独的监听进程来监听服务端口而言,可以有效避免由于监听进程的负载上限不足,导致的服务端并行处理长连接建立请求的数量较少的情况。
步骤202,服务端根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程。
在实施中,服务端的管理进程可以记录有各个处理进程的负载信息,该负载信息中至少包括每个处理进程当前的长连接数目,当某个处理进程上新增或者删除了一个或多个长连接时,管理进程可以对记录的该处理进程的长连接数目进行适应性地修改。这样,服务端接收到客户端发送的长连接建立请求后,可以先获取本地存储的各处理进程的长连接数目,然后选取出当前负载最低的处理进程,即确定出长连接数目最少的第一处理进程。
可选的,服务端通过第二处理进程接收长连接建立请求后,可以将长连接建立请求转发给管理进程,具体处理可以为:通过第二处理进程,使用SOCKET套接字,将长连接建立请求转发至管理进程;相应的,步骤202的处理可以如下:根据本地存储的各处理进程的当前长连接数目,通过管理进程确定当前长连接数目最少的第一处理进程。
在实施中,服务端可以通过设置SOCKET套接字的“SO_REUSEPORT”属性的方式,使多个处理进程共同监听一个服务端口,同时还可以通过SOCKET套接字来实现处理进程和管理进程间的通信,从而达到进程间信息共享的目的,这样,可以减少现有技术中各处理进程信息共享时,因使用锁机制所造成的服务端的系统性能损失。基于上述处理,服务端确定了第二处理进程,并使用第二处理进程接收长连接请求后,可以通过第二处理进程,使用SOCKET套接字,将长连接建立请求转发至服务端的管理进程。
之后,服务端的管理进程可以接收到由第二处理进程转发的长连接建立请求,进而可以获取本地已存储的各个处理进程的负载信息(即当前长连接数目),并根据获取到的负载信息确定出长连接数目最少的第一处理进程。
可选的,客户端可以指定处理长连接建立请求的处理进程,相应的处理可以如下:如果长连接建立请求中携带有第三处理进程的标识信息,则使用第三处理进程处理长连接建立请求;进一步,步骤202的处理可以相应如下:如果长连接建立请求中未携带有任意处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程。
在实施中,客户端可以在发起长连接建立请求时,指定一个处理进程进行处理,例如,对于下载电影、游戏安装包等一些数据量较大的网络业务,在数据交互起始阶段,其业务数据可以和其他网络业务的业务数据在同一条长连接上进行传输,而在传输过程中,客户端发现该网络业务的数据量较大,需要单独占用一条长连接,这时则可以与服务端的原处理进程间重新建立一条长连接,故而,可以在长连接建立请求中直接写入原处理进程的标识信息。
这样,服务端接收到的长连接建立请求中可以携带有某个处理进程的标识信息。进而,服务端可以通过标识信息确定出对应的处理进程(即第三处理进程),然后使用该第三处理进程处理该长连接建立请求。可以理解,如果服务端在接收到客户端传送的长连接建立请求后,发现其中未携带有任意处理进程的标识信息,则可以执行步骤202的处理,即直接根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程。
需要说明的是,结合上述使用第二处理进程接收长连接建立请求的处理,第二处理进程在接收后,可以先判断该长连接建立请求中是否携带有第二处理进程的标识信息,如果是,则可以直接由第二处理进程直接对该长连接建立请求进行处理,而如果长连接建立请求中携带有其它处理进程的标识信息,或者未携带有任何处理进程的标识信息,服务端则可以使用SOCKET套接字,通过第二处理进程将长连接建立请求转发给管理进程。
可选的,在选择处理长连接建立请求的处理进程时,还可以考虑在多个处理进程间尽量平均分配同一客户端的多个长连接,相应的,步骤202的处理可以如下:根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的预设数目个处理进程;获取长连接建立请求中携带的客户端的标识信息,在预设数目个处理进程中,确定与客户端已建立的长连接数目最少的第一处理进程。
在实施中,服务端的管理进程可以对应每个处理进程存储有一张负载信息表,每张负载信息表中包含多条记录,每条记录均对应一个客户端,并存储有当前处理进程上,已与该客户端建立的长连接数目。这样,当服务端接收到客户端发送的长连接建立请求后,可以先获取本地存储的各处理进程的长连接数目,然后选取出当前负载最低的多个处理进程,即确定出长连接数目最少的预设数目个处理进程。然后,获取长连接建立请求中携带的客户端的标识信息,在上述预设数目个处理进程对应的负载信息表中,确定各处理进程已与该客户端建立的长连接数目。进而可以在其中确定出与客户端已建立的长连接数目最少的第一处理进程。
可以理解,由于每个客户端的负载情况不同,每个客户端与服务端建立的一条长连接上的负载量也不同,这样,即使两个处理进程上已建立的长连接数目相同,其负载量也可能存在较大差异,故而,在选择处理进程处理客户端的长连接建立请求时,需要尽量保证将同一客户端的多个长连接建立请求均衡分配给多个处理进程进行处理。
步骤203,服务端使用第一处理进程处理长连接建立请求。
在实施中,服务端确定出当前长连接数目最少的第一处理进程之后,可以使用该第一处理进程处理上述长连接建立请求,即通过第一处理进程建立与客户端的新的长连接。之后,管理进程可以更新第一处理进程的负载信息,即将第一处理进程的当前长连接数目加一。
需要说明的是,本实施例中客户端和服务端都是多进程、I/O(输入/输出,Input/Output)多路复用模型,如图3所示,每个处理进程都是互相独立,不影响主进程的稳定性,能充分利用多核CPU(中央处理器,central processing units)等系统资源。
为了便于理解,图4示出了本实施例服务端的具体处理流程,其中,主进程启动、创建管理进程和处理进程,所有处理进程监听服务端口,并按序选择第二处理进程接收长连接建立请求,判断是否由第二处理进程处理,如果是,则由第二处理进程处理,如果不是,则将长连接建立请求转发给管理进程,管理进程判断是否指定处理进程,如果是,则由指定的第三处理进程处理,如果不是,则按照预设的负载均衡算法,选择出第一处理进程进行处理。
本发明实施例中,服务端接收客户端发送的长连接建立请求,根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程,使用第一处理进程处理长连接建立请求。这样,在需要和客户端建立长连接时,服务端可以在所有处理进程中选择负载最低的处理进程进行处理,从而可以使多个处理进程的负载均衡,提高了服务端的处理资源的利用率。
基于相同的技术构思,本发明实施例还提供了一种处理长连接建立请求的装置,如图5所示,该装置包括:
接收模块501,用于接收客户端发送的长连接建立请求;
确定模块502,用于根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;
处理模块503,用于使用所述第一处理进程处理所述长连接建立请求。
可选的,所述接收模块501,具体用于:
按照预设接收顺序确定第二处理进程,通过所述第二处理进程接收客户端发送的长连接建立请求。
可选的,如图6所示,所述装置还包括:
转发模块504,用于通过所述第二处理进程,使用SOCKET套接字,将所述长连接建立请求转发至管理进程;
所述确定模块502,具体用于:
根据本地存储的各处理进程的当前长连接数目,通过所述管理进程确定所述当前长连接数目最少的第一处理进程。
可选的,所述处理模块503,还用于:
在接收客户端发送的长连接建立请求之后,如果所述长连接建立请求中携带有第三处理进程的标识信息,则使用所述第三处理进程处理所述长连接建立请求;
所述确定模块502,具体用于:
如果所述长连接建立请求中未携带有任一处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程。
可选的,所述确定模块502,具体用于:
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的预设数目个处理进程;
获取所述长连接建立请求中携带的所述客户端的标识信息,在所述预设数目个处理进程中,确定与所述客户端已建立的长连接数目最少的第一处理进程。
本发明实施例中,服务端接收客户端发送的长连接建立请求,根据本地存储的各处理进程的当前长连接数目,确定当前长连接数目最少的第一处理进程,使用第一处理进程处理长连接建立请求。这样,在需要和客户端建立长连接时,服务端可以在所有处理进程中选择负载最低的处理进程进行处理,从而可以使多个处理进程的负载均衡,提高了服务端的处理资源的利用率。
需要说明的是:上述实施例提供的处理长连接建立请求的装置在处理长连接建立请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理长连接建立请求的装置与处理长连接建立请求的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本发明实施例提供的服务端的结构示意图。该服务端700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务端中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务端700上执行存储介质730中的一系列指令操作。
服务端700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘756,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务端700可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述处理长连接建立请求的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种处理长连接建立请求的方法,其特征在于,所述方法包括:
接收客户端发送的长连接建立请求;
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;
使用所述第一处理进程处理所述长连接建立请求;
其中,所述客户端由服务方部署在业务覆盖范围内的各区域中,用于接收用户终端发送的网络业务数据,并通过与服务端建立的长连接,将用户终端发送的网络业务数据转发至服务端;
其中,所述接收客户端发送的长连接建立请求,包括:
按照预设接收顺序确定第二处理进程,通过所述第二处理进程接收客户端发送的长连接建立请求;
所述方法还包括:
通过所述第二处理进程,使用SOCKET套接字,将所述长连接建立请求转发至管理进程;
所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
根据本地存储的各处理进程的当前长连接数目,通过所述管理进程确定所述当前长连接数目最少的第一处理进程。
2.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的长连接建立请求之后,还包括:
如果所述长连接建立请求中携带有第三处理进程的标识信息,则使用所述第三处理进程处理所述长连接建立请求;
所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
如果所述长连接建立请求中未携带有任意处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程。
3.根据权利要求1所述的方法,其特征在于,所述根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程,包括:
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的预设数目个处理进程;
获取所述长连接建立请求中携带的所述客户端的标识信息,在所述预设数目个处理进程中,确定与所述客户端已建立的长连接数目最少的第一处理进程。
4.一种处理长连接建立请求的装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的长连接建立请求;
确定模块,用于根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程;
处理模块,用于使用所述第一处理进程处理所述长连接建立请求;
其中,所述客户端由服务方部署在业务覆盖范围内的各区域中,用于接收用户终端发送的网络业务数据,并通过与服务端建立的长连接,将用户终端发送的网络业务数据转发至服务端;
所述接收模块,具体用于:
按照预设接收顺序确定第二处理进程,通过所述第二处理进程接收客户端发送的长连接建立请求;
所述装置还包括:
转发模块,用于通过所述第二处理进程,使用SOCKET套接字,将所述长连接建立请求转发至管理进程;
所述确定模块,具体用于:
根据本地存储的各处理进程的当前长连接数目,通过所述管理进程确定所述当前长连接数目最少的第一处理进程。
5.根据权利要求4所述的装置,其特征在于,所述处理模块,还用于:
在接收客户端发送的长连接建立请求之后,如果所述长连接建立请求中携带有第三处理进程的标识信息,则使用所述第三处理进程处理所述长连接建立请求;
所述确定模块,具体用于:
如果所述长连接建立请求中未携带有任意处理进程的标识信息,则根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的第一处理进程。
6.根据权利要求4所述的装置,其特征在于,所述确定模块,具体用于:
根据本地存储的各处理进程的当前长连接数目,确定所述当前长连接数目最少的预设数目个处理进程;
获取所述长连接建立请求中携带的所述客户端的标识信息,在所述预设数目个处理进程中,确定与所述客户端已建立的长连接数目最少的第一处理进程。
7.一种服务端,其特征在于,所述服务端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至5任一所述的处理长连接建立请求的方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至5任一所述的处理长连接建立请求的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550234.7A CN107135279B (zh) | 2017-07-07 | 2017-07-07 | 一种处理长连接建立请求的方法和装置 |
PCT/CN2017/095551 WO2019006808A1 (zh) | 2017-07-07 | 2017-08-02 | 一种处理长连接建立请求的方法和装置 |
US16/328,943 US10791166B2 (en) | 2017-07-07 | 2017-08-02 | Method and device for processing persistent connection establishment request |
EP17916475.1A EP3550802A4 (en) | 2017-07-07 | 2017-08-02 | METHOD AND DEVICE FOR PROCESSING PERSISTENT CONNECTION REQUEST |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550234.7A CN107135279B (zh) | 2017-07-07 | 2017-07-07 | 一种处理长连接建立请求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107135279A CN107135279A (zh) | 2017-09-05 |
CN107135279B true CN107135279B (zh) | 2020-11-27 |
Family
ID=59737402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710550234.7A Expired - Fee Related CN107135279B (zh) | 2017-07-07 | 2017-07-07 | 一种处理长连接建立请求的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10791166B2 (zh) |
EP (1) | EP3550802A4 (zh) |
CN (1) | CN107135279B (zh) |
WO (1) | WO2019006808A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306926B (zh) * | 2017-11-30 | 2021-08-13 | 深圳市科列技术股份有限公司 | 一种车联网设备网关业务数据的推送方法和装置 |
CN108055346B (zh) * | 2017-12-26 | 2020-12-22 | 广东睿江云计算股份有限公司 | 一种优化邮件终端链接的方法 |
CN108200218B (zh) * | 2018-03-09 | 2021-11-26 | 北京奇艺世纪科技有限公司 | 一种实现负载均衡的方法、装置及电子设备 |
CN110855726B (zh) * | 2018-08-20 | 2024-02-06 | 北京京东尚科信息技术有限公司 | 通信方法、装置以及网关、计算设备和介质 |
CN110958281B (zh) * | 2018-09-26 | 2021-07-09 | 华为技术有限公司 | 基于物联网的数据传输方法及通信装置 |
CN113411371B (zh) * | 2020-11-12 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 应用于车辆的通信方法、装置、电子设备及车辆 |
CN113923249B (zh) * | 2021-10-12 | 2024-08-27 | 工银科技有限公司 | 一种高性能网络长连接建立方法及装置 |
CN113992731B (zh) * | 2021-11-02 | 2024-04-30 | 四川安迪科技实业有限公司 | 基于stomp协议的异常控制方法及装置 |
CN114286425A (zh) * | 2021-12-17 | 2022-04-05 | 北京达佳互联信息技术有限公司 | 一种长连接建立系统、方法、装置、电子设备及存储介质 |
US11652909B1 (en) | 2022-03-10 | 2023-05-16 | International Business Machines Corporation | TCP session closure in container orchestration system |
CN115134400A (zh) * | 2022-06-29 | 2022-09-30 | 中国工商银行股份有限公司 | 动态调整长连接数的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051724A (zh) * | 2012-12-28 | 2013-04-17 | 北京思特奇信息技术股份有限公司 | 一种基于长连接的套接字同步方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001296993A1 (en) | 2000-10-05 | 2002-04-15 | Christopher Peiffer | Connection management system and method |
US20040049580A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms |
US7966418B2 (en) * | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
US20050154733A1 (en) * | 2003-12-05 | 2005-07-14 | David Meltzer | Real-time change detection for network systems |
CN102916953B (zh) * | 2012-10-12 | 2016-03-09 | 青岛海信传媒网络技术有限公司 | 基于tcp连接实现并发服务的方法及装置 |
US9756086B1 (en) * | 2013-03-04 | 2017-09-05 | Amazon Technologies, Inc. | Distributed connection management |
US10243854B2 (en) * | 2015-12-09 | 2019-03-26 | International Business Machines Corporation | Persistent connection rebalancing |
CN105721342B (zh) * | 2016-02-24 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 多进程设备的网络连接方法和系统 |
CN105763634B (zh) * | 2016-04-14 | 2019-01-04 | 北京思特奇信息技术股份有限公司 | 一种基于tcp长连接的服务实现方法和装置 |
-
2017
- 2017-07-07 CN CN201710550234.7A patent/CN107135279B/zh not_active Expired - Fee Related
- 2017-08-02 WO PCT/CN2017/095551 patent/WO2019006808A1/zh unknown
- 2017-08-02 EP EP17916475.1A patent/EP3550802A4/en not_active Withdrawn
- 2017-08-02 US US16/328,943 patent/US10791166B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051724A (zh) * | 2012-12-28 | 2013-04-17 | 北京思特奇信息技术股份有限公司 | 一种基于长连接的套接字同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107135279A (zh) | 2017-09-05 |
US10791166B2 (en) | 2020-09-29 |
EP3550802A1 (en) | 2019-10-09 |
WO2019006808A1 (zh) | 2019-01-10 |
US20190245914A1 (en) | 2019-08-08 |
EP3550802A4 (en) | 2020-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107135279B (zh) | 一种处理长连接建立请求的方法和装置 | |
CN110113441B (zh) | 实现负载均衡的计算机设备、系统和方法 | |
CN107645529B (zh) | 心跳包发送方法及装置 | |
CN102769603B (zh) | 一种数据传输的方法、系统及设备 | |
JP2018067959A (ja) | トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法 | |
CN111193773B (zh) | 负载均衡方法、装置、设备及存储介质 | |
KR102155262B1 (ko) | 탄력적 허니넷 시스템 및 그 동작 방법 | |
US10402280B2 (en) | File transfer system and method, policy server, terminal and storage medium | |
US9370032B2 (en) | Service processing method and apparatus based on android system | |
US20230161541A1 (en) | Screen projection method and system | |
CN112398689A (zh) | 网络恢复方法、装置、存储介质及电子设备 | |
WO2022116849A1 (zh) | 服务分配方法、装置、电子设备及存储介质 | |
CN115955437B (zh) | 一种数据传输方法、装置、设备及介质 | |
US11973824B2 (en) | Method for data transmission of audio and video in end-to-end system | |
CN106169982B (zh) | 扩展端口的处理方法、装置及系统 | |
CN110493095A (zh) | 一种vpn业务的处理方法、装置、服务器和存储介质 | |
CN113489775B (zh) | 一种基于vpp的七层负载均衡服务器及负载均衡方法 | |
CN112491810B (zh) | 一种数据连接的方法及移动终端 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 | |
KR102526770B1 (ko) | 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 | |
CN108055305B (zh) | 一种存储扩展方法及存储扩展装置 | |
CN104753826A (zh) | 一种带宽分配方法及装置 | |
CN118118423B (zh) | 网络通信方法、装置、计算机设备以及存储介质 | |
Zhang et al. | A Runtime Framework for Context-Sensitive Device-to-Device Communication | |
CN111371573B (zh) | 消息交互方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201127 |