CN114584518A - 基于资源池的websocket负载均衡方法及系统 - Google Patents
基于资源池的websocket负载均衡方法及系统 Download PDFInfo
- Publication number
- CN114584518A CN114584518A CN202210334949.XA CN202210334949A CN114584518A CN 114584518 A CN114584518 A CN 114584518A CN 202210334949 A CN202210334949 A CN 202210334949A CN 114584518 A CN114584518 A CN 114584518A
- Authority
- CN
- China
- Prior art keywords
- connection
- resource pool
- client
- websocket
- communication connection
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/788—Autonomous allocation of resources
-
- 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 And Data Communications (AREA)
Abstract
本申请提供了一种基于资源池的websocket负载均衡方法及系统,涉及数据通信领域,可应用于金融领域和其他领域,所述方法包含:根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。以此,资源池中所有连接的一致性,解决了链接建立成功后,所有请求必须通过同一链接进行下发的限制,实现了真正意义上的负载均衡。
Description
技术领域
本申请涉及数据通信领域,可应用于金融领域和其他领域,尤指一种基于资源池的websocket负载均衡方法及系统。
背景技术
WebSocket作为一种在单个TCP连接上进行全双工通信的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。相比传统的HTTP协议,它具有控制开销少、实时性强、有状态连接、便于支持二进制数据、便于扩展等一系列优点,因此在一些在线客服、协同办公、股市基金报价等应用场景中被广泛采用。为进一步提高应用系统的健壮性和性能,通常会在前端采用负载均衡方案,以消除系统的单点故障,提高系统的并发处理能力。
目前最常见的负载均衡部署方式是采用NGINX作为反向代理,NGINX为一种开源的轻量级Web服务器和反向代理服务器及电子邮件服务器,其特点是占用内存少、并发能力强,且运行稳定、配置简单、扩展方便,因此被广泛使用,尤其是作为反向代理服务器,广泛用于作为软件负载均衡。其为后端的WebSocket应用提供负载均衡支持,解决方案是配置多个upstream实现负载均衡。NGINX支持轮询、IP哈希、URL哈希、权重等多种负载均衡算法,理论可以实现较好的负载均衡效果。但是,一般情况下WebSocket应用在通信过程中需要携带状态信息,开发人员在开发过程中,通常会将这些状态信息通过集合进行管理,存储在内存中。因此对于多节点分布式架构,只能采用IP哈希负载均衡策略,IP哈希为一种负载均衡策略算法,其原理是根据客户端的IP地址计算出一个哈希值,并依据该哈希值,将客户端连接下发到负载均衡后端的对应节点上。该算法可以确保来自同一客户端的连接始终被转发到同一后端节点,因此在需要会话保持的应用场景中,通常必须采用该负载均衡策略。以保证同一用户的请求连接转发到同一台服务器上,从而解决状态信息不一致的问题。
现有采用IP哈希负载均衡策略的解决方案,在技术上存在一些重大缺陷,主要表现在以下几个方面:无法应对NAT网络环境:多个客户端采用NAT方式访问应用系统时,对于NGINX来说,由于不同客户端的IP地址完全一样,其连接将会被分配给同一个后端处理节点,从而导致负载均衡机制失效。容错性差:一旦所绑定的后端处理节点出现故障,用户的所有会话信息都会丢失。负载均衡手段单一:仅是根据客户端的IP地址进行负载转发,本质上只能作用于负载建立之前,无法针对不同连接的信息交互压力情况进行进一步优化,可能会出现某一连接信息交互频繁而其他连接闲置的情况。
发明内容
本申请目的在于提供一种基于资源池的websocket负载均衡方法及系统,基于资源池的理念实现websocket带状态信息通信的负载均衡方案,可有效解决该矛盾,可实现websocket连接建立前与建立后会话两个层面的负载均衡功能。
为达上述目的,本申请所提供的基于资源池的websocket负载均衡方法,具体包含:根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
在上述基于资源池的websocket负载均衡方法中,可选的,通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池包含:通过所述虚拟客户接口与websocket服务端建立通信连接,根据连接结果生成对应的路径编号;根据所述路径编号和所述websocket服务端生成连接资源,将所述连接资源加入连接资源池。
在上述基于资源池的websocket负载均衡方法中,可选的,根据虚拟服务接口接收到的客户端提供的请求数据包含:通过所述虚拟服务接口拦截客户端向websocket服务端发起的连接请求,解析所述连接请求获得会话控制数据;所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据。
在上述基于资源池的websocket负载均衡方法中,可选的,解析所述连接请求获得会话控制数据还包含:当所述连接资源池内所述通信连接为空时,关闭所述连接请求。
在上述基于资源池的websocket负载均衡方法中,可选的,所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据包含:根据所述会话控制数据生成会话控制编号,将所述会话控制编号和所述会话控制数据关联后存储;根据所述虚拟服务接口接收到的客户端发起的会话请求,解析所述会话请求获得会话控制数据和会话消息;根据所述会话控制数据查询获得对应的所述会话控制编号,将所述会话控制编号加入所述会话消息获得所述请求数据。
在上述基于资源池的websocket负载均衡方法中,可选的,所述方法还包含:通过所述虚拟客户接口获得websocket服务端提供的推送消息,解析所述推送消息获得所述会话控制编号;根据所述会话控制编号查询获得对应的所述会话控制数据,根据所述会话控制数据推送所述websocket服务端提供的推送消息。
在上述基于资源池的websocket负载均衡方法中,可选的,所述方法还包含:通过单独的线程监测所述连接资源池内所述通信连接的运行状态;当所述运行状态为异常状态时,移除对应的所述通信连接并重新进行连接,将连接成功的通信连接加入所述连接资源池。
本申请还提供一种基于资源池的websocket负载均衡系统,,所述系统包含客户端、中间层和websocket服务端;所述中间层用于根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本申请还提供一种计算机程序产品,包括计算机程序/指令,,该计算机程序/指令被处理器执行时实现上述方法的步骤。
本申请的有益技术效果在于:通过伪客户端与服务端建立连资源池,暴露给客户端的是同一个连接标记,客户端在发起请求后,可在资源池中选择任一连接下发,从而大大提升了系统服务的容错性。资源池中所有连接的一致性,间接性打破了websocket协议长链接唯一性的限制,解决了链接建立成功后,所有请求必须通过同一链接进行下发的限制,使得客户端每一次的请求都可以从资源池中选择最优链路进行通信,实现了真正意义上的负载均衡。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1为本申请一实施例所提供的基于资源池的websocket负载均衡方法的流程示意图;
图2为本申请一实施例所提供的连接资源池的生成流程示意图;
图3为本申请一实施例所提供的连接请求的处理流程示意图;
图4为本申请一实施例所提供的请求数据的获取示意图;
图5为本申请一实施例所提供的消息推送的流程示意图;
图6为本申请一实施例所提供的连接资源池的维护流程示意图;
图7为本申请一实施例所提供的基于资源池的websocket负载均衡系统的应用结构示意图;
图8为本申请一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本申请中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本申请的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
请参考图1所示,本申请所提供的基于资源池的websocket负载均衡方法,具体包含:
S101根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;
S102通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;
S103根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
以此,本申请所提供的上述实施例可有效解决现有技术中无法解决websocket通信携带状态信息的唯一性与负载均衡的平衡性之间的矛盾的问题,可实现websocket连接建立前与建立后会话两个层面的负载均衡功能,其主要原理在于在websocket客户端与服务端中间建立中间层,中间层分别模拟websocket连接的客户端与服务端,通过截取通信消息后,按最优算法实现websocket链路的选择以及session的共享,从而实现负载均衡的功能。
请参考图2所示,在本申请一实施例中,通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池包含:
S201通过所述虚拟客户接口与websocket服务端建立通信连接,根据连接结果生成对应的路径编号;
S202根据所述路径编号和所述websocket服务端生成连接资源,将所述连接资源加入连接资源池。
具体的,在实际工作中,连接资源池的构建流程如下:
1、启动中间层服务,初始化连接资源池;
2、启动一个用于连接后端节点的伪客户端;
3、使用该伪客户端连接到后端节点,连接建立成功后,记录该后端节点的唯一标识serverID与websocket服务端之间的关联关系;
4、根据记录的后端节点serverID与websocket连接创建一个连接资源类,并将该类加入到资源池;
5、根据后端节点的配置数量,判断是否全部处理完毕到后端节点的连接,如果已经处理完毕则退出,否则从步骤2继续处理下一个连接。
请参考图3所示,在本申请一实施例中,根据虚拟服务接口接收到的客户端提供的请求数据包含:
S301通过所述虚拟服务接口拦截客户端向websocket服务端发起的连接请求,解析所述连接请求获得会话控制数据;
S302所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据。
其中,解析所述连接请求获得会话控制数据还可包含:当所述连接资源池内所述通信连接为空时,关闭所述连接请求。
请参考图4所示,在上述实施例中,所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据可包含:
S401根据所述会话控制数据生成会话控制编号,将所述会话控制编号和所述会话控制数据关联后存储;
S402根据所述虚拟服务接口接收到的客户端发起的会话请求,解析所述会话请求获得会话控制数据和会话消息;
S403根据所述会话控制数据查询获得对应的所述会话控制编号,将所述会话控制编号加入所述会话消息获得所述请求数据。
在该实施例中,步骤301和步骤S401即为客户端与连接资源池建立连接的过程,在实际工作中,其实施流程如下:
1、客户端发起连接请求;
2、中间层服务端截获客户端连接建立过程,获取session后,查询连接资源池是否为空;
3、若资源池为空,则关闭客户端连接请求;
4、若资源池不为空,则生成客户端通信唯一表示sessionID为key,session为value,将连接信息存储在缓存中。
基于上述流程,上述步骤S103的具体实现流程可如下:
1、客户端发起请求;
2、中间层伪服务端接收请求信息,根据session查询到sessionID,将sessionID加入消息中;
3、根据最优链路算法,从连接池中获取当前最优连接;
4、将消息下发至服务端。
以此,实现了客户端向websocket服务端发送消息的全部流程。
请参考图5所示,在本申请一实施例中,所述方法还可包含:
S501通过所述虚拟客户接口获得websocket服务端提供的推送消息,解析所述推送消息获得所述会话控制编号;
S502根据所述会话控制编号查询获得对应的所述会话控制数据,根据所述会话控制数据推送所述websocket服务端提供的推送消息。
该实施例主要用于实现websocket服务端向客户端推送信息,在实际工作中其实现流程如下:
1、服务端向客户端推送消息;
2、中间层伪客户端接收推送消息,解析消息获取sessionID;
3、根据sessionID,从缓存中查询对应session;
4、将推送消息发送至相应客户端。
请参考图6所示,在本申请一实施例中,所述方法还可包含:
S601通过单独的线程监测所述连接资源池内所述通信连接的运行状态;
S602当所述运行状态为异常状态时,移除对应的所述通信连接并重新进行连接,将连接成功的通信连接加入所述连接资源池。
具体的,在实际工作中,对于资源池中的连接,需要以单独的线程进行监测,监测到废弃的连接后,需要及时从连接池中移除,并进行重连尝试,如重连成功,将该连接重新添加入资源池,以保证资源池的可用性;其实施流程如下:
1、启动定时监测线程,对资源池中的连接依次进行状态检测;
2、若连接状态为异常,则移除该连接资源;
3、移除连接资源后,开启异步方法,进行重连尝试;
4、连接重连成功后,将连接重新添加入连接资源池中;
5、继续检测下一连接,直至处理完连接池中的所有资源。
NGINX实现的负载均衡主要限制在于websocket连接状态信息,使得连接建立后,必须绑定唯一的后端节点,从而不得不通过ip哈希策略来保证通信使用的连接的一致性,通过降低容错性保证了连接可用性。但NGINX内部也有一种会话复制方案,在服务端发生异常时,解决会话信息丢失的问题。会话复制方案会在服务端异常后,向集群内所有其他节点发出广播事件,让他们也把相应的session做出改变,以达到集群内部所有节点的会话信息保持一致的目的。这一方案的主要优点,首先是具有容错性,另外就是不同服务器上保留着相同的会话信息,用户如果发生切换服务器时,响应非常及时;但这样做也有一个致命的缺点,这个缺点主要来自于服务器群间的网络广播事件,如果后端服务器群组比较多,或者会话信息比较大时,网络广播会极大地消耗网络性能,甚至造成整个网络的瘫痪。本申请通过上述实施例利用伪客户端与服务端建立连资源池,暴露给客户端的是同一个连接标记,客户端在发起请求后,可在资源池中选择任一连接下发,从而大大提升了系统服务的容错性;资源池中所有连接的一致性,间接性打破了websocket协议长链接唯一性的限制,解决了链接建立成功后,所有请求必须通过同一链接进行下发的限制,使得客户端每一次的请求都可以从资源池中选择最优链路进行通信,实现了真正意义上的负载均衡。
本申请还提供一种基于资源池的websocket负载均衡系统,,所述系统包含客户端、中间层和websocket服务端;所述中间层用于根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
实际应用结构可参考图7所示,所述虚拟服务接口为伪服务端,所述虚拟客户接口为伪客户端,如图所示,在客户端和服务端之间建立一个中间层,分别模拟websocket客户端与服务端,服务启动后,与所有服务端建立连接,所有连接组建成连接资源池,客户端在访问应用系统时,直接从资源池中调用可用连接即可。
本申请的有益技术效果在于:通过伪客户端与服务端建立连资源池,暴露给客户端的是同一个连接标记,客户端在发起请求后,可在资源池中选择任一连接下发,从而大大提升了系统服务的容错性。资源池中所有连接的一致性,间接性打破了websocket协议长链接唯一性的限制,解决了链接建立成功后,所有请求必须通过同一链接进行下发的限制,使得客户端每一次的请求都可以从资源池中选择最优链路进行通信,实现了真正意义上的负载均衡。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本申请还提供一种计算机程序产品,包括计算机程序/指令,,该计算机程序/指令被处理器执行时实现上述方法的步骤。
如图8所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图8中所示的所有部件;此外,电子设备600还可以包括图8中没有示出的部件,可以参考现有技术。
如图8所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种基于资源池的websocket负载均衡方法,其特征在于,所述方法包含:
根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;
通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;
根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
2.根据权利要求1所述的基于资源池的websocket负载均衡方法,其特征在于,通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池包含:
通过所述虚拟客户接口与websocket服务端建立通信连接,根据连接结果生成对应的路径编号;
根据所述路径编号和所述websocket服务端生成连接资源,将所述连接资源加入连接资源池。
3.根据权利要求1所述的基于资源池的websocket负载均衡方法,其特征在于,根据虚拟服务接口接收到的客户端提供的请求数据包含:
通过所述虚拟服务接口拦截客户端向websocket服务端发起的连接请求,解析所述连接请求获得会话控制数据;
所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据。
4.根据权利要求3所述的基于资源池的websocket负载均衡方法,其特征在于,解析所述连接请求获得会话控制数据还包含:
当所述连接资源池内所述通信连接为空时,关闭所述连接请求。
5.根据权利要求3所述的基于资源池的websocket负载均衡方法,其特征在于,所述虚拟服务接口根据所述会话控制数据接收到的客户端发起的会话请求,根据所述会话请求获得所述请求数据包含:
根据所述会话控制数据生成会话控制编号,将所述会话控制编号和所述会话控制数据关联后存储;
根据所述虚拟服务接口接收到的客户端发起的会话请求,解析所述会话请求获得会话控制数据和会话消息;
根据所述会话控制数据查询获得对应的所述会话控制编号,将所述会话控制编号加入所述会话消息获得所述请求数据。
6.根据权利要求5所述的基于资源池的websocket负载均衡方法,其特征在于,所述方法还包含:
通过所述虚拟客户接口获得websocket服务端提供的推送消息,解析所述推送消息获得所述会话控制编号;
根据所述会话控制编号查询获得对应的所述会话控制数据,根据所述会话控制数据推送所述websocket服务端提供的推送消息。
7.根据权利要求1所述的基于资源池的websocket负载均衡方法,其特征在于,所述方法还包含:
通过单独的线程监测所述连接资源池内所述通信连接的运行状态;
当所述运行状态为异常状态时,移除对应的所述通信连接并重新进行连接,将连接成功的通信连接加入所述连接资源池。
8.一种基于资源池的websocket负载均衡系统,其特征在于,所述系统包含客户端、中间层和websocket服务端;
所述中间层用于根据websocket服务端和客户端模拟构建虚拟服务接口和虚拟客户接口;通过所述虚拟客户接口与websocket服务端建立通信连接,将所述通信连接加入连接资源池;根据虚拟服务接口接收到的客户端提供的请求数据,通过最优链路算法于所述连接资源池中获得对应的所述通信连接,将所述请求数据通过所述通信连接提供至websocket服务端。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有由计算机执行权利要求1至7任一所述方法的计算机程序。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210334949.XA CN114584518B (zh) | 2022-03-31 | 2022-03-31 | 基于资源池的websocket负载均衡方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210334949.XA CN114584518B (zh) | 2022-03-31 | 2022-03-31 | 基于资源池的websocket负载均衡方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584518A true CN114584518A (zh) | 2022-06-03 |
CN114584518B CN114584518B (zh) | 2023-10-20 |
Family
ID=81785885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210334949.XA Active CN114584518B (zh) | 2022-03-31 | 2022-03-31 | 基于资源池的websocket负载均衡方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584518B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790340A (zh) * | 2016-04-25 | 2017-05-31 | 新华三技术有限公司 | 一种链路调度方法及装置 |
CN112214338A (zh) * | 2020-11-05 | 2021-01-12 | 北京科东电力控制系统有限责任公司 | 一种基于微服务灵活部署的物联网云平台 |
-
2022
- 2022-03-31 CN CN202210334949.XA patent/CN114584518B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790340A (zh) * | 2016-04-25 | 2017-05-31 | 新华三技术有限公司 | 一种链路调度方法及装置 |
CN112214338A (zh) * | 2020-11-05 | 2021-01-12 | 北京科东电力控制系统有限责任公司 | 一种基于微服务灵活部署的物联网云平台 |
Also Published As
Publication number | Publication date |
---|---|
CN114584518B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111565229B (zh) | 一种基于Redis的通信系统分布式方法 | |
US10862955B2 (en) | Distributing service sessions | |
US10491523B2 (en) | Load distribution in data networks | |
EP3490224B1 (en) | Data synchronization method and system | |
WO2019206296A1 (zh) | 用于网关服务器的故障处理方法和装置 | |
CN101622587B (zh) | 用于唤醒计算设备的集中式服务 | |
CN110505275A (zh) | 数据传输方法、系统、服务器及计算机可读存储介质 | |
US20160042014A1 (en) | Distributed database in software driven networks | |
US20210218590A1 (en) | Virtual Meetings In Ad-Hoc Networks | |
CN111414208A (zh) | 应用程序的启动方法、装置及设备 | |
WO2021226781A1 (zh) | 防火墙规则的更新方法、装置、服务器及存储介质 | |
JP2021535515A (ja) | イベントコンテンツ配信 | |
CN112671554A (zh) | 一种节点故障处理方法及相关装置 | |
US9088629B2 (en) | Managing an electronic conference session | |
WO2024103943A1 (zh) | 一种业务处理方法、装置、存储介质及设备 | |
WO2013159492A1 (zh) | 信息上报与下载的方法及系统 | |
CN113014855A (zh) | 一种视频会议加速方法、系统及视频会议加速平台 | |
CN114584518B (zh) | 基于资源池的websocket负载均衡方法及系统 | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
US9219783B2 (en) | Synchronizing machines in groups | |
US20140161125A1 (en) | Method, duplication point device, and system for data flow reuse transmission | |
KR20090071542A (ko) | 호스트 가장 네트워크 디바이스 및 그의 방법 | |
US20210337041A1 (en) | Orchestrated proxy service | |
CN111416852A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
WO2024131383A1 (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 |