CN117640721A - 一种集群通信管理方法及系统 - Google Patents
一种集群通信管理方法及系统 Download PDFInfo
- Publication number
- CN117640721A CN117640721A CN202311665980.2A CN202311665980A CN117640721A CN 117640721 A CN117640721 A CN 117640721A CN 202311665980 A CN202311665980 A CN 202311665980A CN 117640721 A CN117640721 A CN 117640721A
- Authority
- CN
- China
- Prior art keywords
- current
- application server
- connection
- client
- server
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 165
- 238000007726 management method Methods 0.000 title abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种集群通信管理方法及系统,该方法包括:应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息;每个应用服务器通过调用与管理服务器建立连接的通信接口,将当前连接信息发送至管理服务器中;每个应用服务器通过存储服务集群,将当前运行信息发送至管理服务器中;管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息对各个应用服务器进行管理。通过本发明实施例的技术方案,以实现应用服务集群通信的统一管理,可以实时获取到应用服务器中的当前连接信息和当前运行信息,从而提高应用服务集群的性能和稳定性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种集群通信管理方法及系统。
背景技术
随着分布式系统的普及和发展,越来越多的应用开始采用集群的方式来提高系统的性能。而应用服务集群中各个应用服务器所连接的客户端的数量是影响应用服务器集群性能的关键因素,如何实现对各个应用服务器所连接的客户端连接数和状态的管理是一个非常重要的问题。
目前,传统的应用服务集群中各个节点服务器的管理方式是通过配置计算机域名系统,并使用随机算法将客户端分发到不同的应用服务器上。然而,传统的管理方式仅是应用服务器自身进行单独管理,无法实现应用服务集群通信的统一管理,无法实时获取到应用服务器中客户端的当前连接信息和当前运行信息,导致应用服务集群的性能和稳定性较差。
发明内容
本发明提供了一种集群通信管理方法及系统,以实现应用服务集群通信的统一管理,可以实时获取到应用服务器中的当前连接信息和当前运行信息,从而提高应用服务集群的性能和稳定性。
第一方面,本发明实施例提供了一种集群通信管理方法,包括:
应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,所述当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态;
每个应用服务器通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中;
每个应用服务器通过存储服务集群,将当前运行信息发送至所述管理服务器中;
所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理。
第二方面,本发明实施例还提供了一种集群通信管理系统,包括:
应用服务集群、存储服务集群和管理服务器;其中,
应用服务集群中的每个应用服务器用于获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,所述当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态;
每个应用服务器还用于通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中;
每个应用服务器还用于通过存储服务集群,将当前运行信息发送至所述管理服务器中;
所述管理服务器用于基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理。
本发明实施例的技术方案,通过应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息。每个应用服务器通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中,从而实时更新应用服务器上客户端的连接数和连接状态。每个应用服务器通过存储服务集群,将当前运行信息发送至所述管理服务器中,从而及时发现和处理应用服务器的异常情况,保证应用服务器的稳定性和可靠性。所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理,从而实现应用服务集群通信的统一管理,可以实时获取到应用服务器中的当前连接信息和当前运行信息,提高应用服务集群的性能和稳定性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种集群通信管理方法的流程图;
图2是根据本发明实施例一所涉及的确定每个客户端对应的当前连接状态的流程图;
图3是根据本发明实施例一所涉及的一种集群通信管理方法的示意图;
图4是根据本发明实施例二提供的一种集群通信管理方法的流程图;
图5是根据本发明实施例三提供的一种集群通信管理系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“目标”、“当前”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种集群通信管理方法的流程图,本实施例可适用于对应用服务集群进行通信管理的情况。如图1所示,该方法可以由集群通信管理系统来执行,该集群通信管理系统可以采用硬件和/或软件的形式实现。如图1所示,该方法具体包括以下步骤:
S110、应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态。
其中,应用服务器集群可以是指将多台应用服务器集中起来,共同提供一种或多种应用服务,这些应用服务器之间通过网络连接和通信,协同工作。预设网络通信协议可以是指预先选择的用于建立应用服务器与客户端之间通信连接的网络通信协议。例如,预设网络通信协议可以是WebSocket协议。当前连接信息可以是指当前时刻各个应用服务器上已连接的客户端的数量信息和每个客户端的当前连接状态信息。当前连接状态可以是指当前时刻客户端为连接状态、断开状态或正在连接状态。
具体的,当应用服务集群中的每个应用服务器基于预设网络通信协议与客户端建立通信连接后,确定当前时刻下每个应用服务器上已连接的客户端的数量,并确定当前时刻下每个应用服务器已连接客户端的当前连接状态,从而获取每个应用服务器基于预设网络通信协议与客户端建立通信连接的当前连接信息,可以始终保证最准确的当前连接信息,便于应用服务集群状态的高效管理。
示例性的,S110可以包括:应用服务集群中的每个应用服务器创建预设网络通信协议对应的网络通信服务;通过网络通信服务,在监听到基于预设网络通信协议与客户端建立通信连接的连接事件时,将当前已连接的客户端数量加1处理;通过网络通信服务,在监听到基于预设网络通信协议与客户端建立通信断开的断开事件时,将当前已连接的客户端数量减1处理;向建立连接的每个客户端发送心跳包,确定每个客户端对应的当前连接状态。
其中,网络通信服务可以是指一种通过网络进行数据传输和通信的服务,通常包括数据的传输、接收、处理等功能。连接事件可以是指应用服务器与客户端之间基于预设网络通信协议建立网络连接。断开事件可以是指基于预设网络通信协议连接的应用服务器与客户端之间断开网络连接。心跳包可以是指在客户端和应用服务器之间定时发送的消息,用于确定每个客户端对应的当前连接状态。
具体的,应用服务集群中的每个应用服务器创建预设网络通信协议对应的网络通信服务,并通过网络通信服务监听各个应用服务器基于预设网络通信协议与客户端建立通信连接的连接事件和各个应用服务器基于预设网络通信协议与客户端断开通信连接的断开事件。当监听到基于预设网络通信协议与客户端建立通信连接的连接事件时,将对应应用服务器的当前已连接的客户端数量加1处理;当监听到基于预设网络通信协议与客户端建立通信断开的断开事件时,将对应应用服务器的当前已连接的客户端数量减1处理。定时向建立连接的每个客户端发送心跳包,并基于各个客户端的响应结果确定每个客户端对应的当前连接状态,从而可以实时获取最新的应用服务集群中的每个应用服务器的当前连接信息。
示例性的,如图2所示,应用服务器可以是节点服务器,预设网络通信协议可以是WebSocket协议,连接事件可以是WebSocket连接事件,断开事件可以是WebSocket关闭事件,应用服务集群中的每个应用服务器创建对应的WebSocket服务。通过WebSocket服务监听各个应用服务器基于WebSocket协议与客户端建立通信连接的连接事件和各个应用服务器基于WebSocket协议与客户端断开通信连接的断开事件。当监听到WebSocket连接事件时,将对应应用服务器的当前已连接的客户端数量加1处理;当监听到WebSocket关闭事件时,将对应应用服务器的当前已连接的客户端数量减1处理。定时向建立连接的每个客户端发送心跳包,并基于各个客户端的响应结果更新每个客户端对应的当前连接状态。基于API接口,输出每个应用服务器对应的当前已连接的客户端数量和已连接客户端的连接状态信息。
示例性的,向建立连接的每个客户端发送心跳包,确定每个客户端对应的当前连接状态,包括:若建立连接的客户端接收到心跳包,则确定该客户端对应的当前连接状态为已连接状态;若建立连接的客户端未接收到心跳包,则确定该客户端对应的当前连接状态为已断开状态。
具体的,每隔一段时间向每个应用服务器建立连接的每个客户端发送心跳包,若与应用服务器建立连接的客户端接收到心跳包,则确定该与应用服务器建立连接的客户端对应的当前连接状态为已连接状态;若应用服务器建立连接的客户端未接收到心跳包,则确定该与应用服务器建立连接的客户端对应的当前连接状态为已断开状态,从而可以实时获取到应用服务器连接的客户端对应的当前连接状态。
S120、每个应用服务器通过调用与管理服务器建立连接的通信接口,将当前连接信息发送至管理服务器中。
其中,管理服务器可以是指用于管理应用服务集群的服务器,为应用服务集群的管理和维护提供了一个集中的控制点。通信接口可以是指基于通信协议建立通信规则和方式的接口。例如,通信接口可以是WebSocket接口。
具体的,每个应用服务器与管理服务器之间建立与预设网络通信协议对应的通信接口。每个应用服务器调用与管理服务器建立连接的通信接口,将应用服务集群中的每个应用服务器获取的基于预设网络通信协议与客户端建立通信连接的当前连接信息发送至管理服务器中,从而使管理服务器可以实时获取到应用服务器中的当前连接信息。
S130、每个应用服务器通过存储服务集群,将当前运行信息发送至管理服务器中。
其中,存储服务集群可以是指由多个存储服务器组成的集群,用于提供数据存储和访问服务。例如,存储服务集群可以是Redis服务集群。当前运行信息可以是指当前时刻应用服务器的中央处理器和内存使用情况以及当前连接信息。
具体的,基于存储服务集群,收集并存储应用服务集群中的每个应用服务器的当前运行信息,并将收集到的应用服务集群中的每个应用服务器的当前运行信息发送至管理服务器中,从而使管理服务器可以实时获取到应用服务器中的当前运行信息。
示例性的,S130可以包括:每个应用服务器将当前运行信息发布至存储服务集群;存储服务集群中处于当前运行状态的目标存储服务器通过消息订阅方式,获得每个应用服务器发布的当前运行信息;目标存储服务器将获得的每个应用服务器的当前运行信息发送至管理服务器中。
其中,目标存储服务器可以是指存储服务集群中当前处于运行状态、负责存储和管理数据的存储服务器。消息订阅方式可以是指一种基于发布-订阅模式的通信方式。在发布-订阅模式中,信息的发布者不会直接发送信息给特定的接收者,而是将信息发布到一个中间层,称为消息代理,订阅了相关信息的接收者会从消息代理那里接收到这些信息。
具体的,存储服务集群收集并存储应用服务集群中的每个应用服务器的当前运行信息。存储服务集群中处于当前运行状态的目标存储服务器通过消息订阅方式对应用服务集群中的每个应用服务器进行订阅,并基于存储服务集群存储的应用服务集群中每个应用服务器的当前运行信息,获得订阅的每个应用服务器发布的当前运行信息。目标存储服务器将获得的每个应用服务器的当前运行信息发送至管理服务器中,从而使管理服务器可以实时获取到应用服务器中的当前运行信息。
S140、管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息对各个应用服务器进行管理。
具体的,管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息进行分析,并基于分析结果对各个应用服务器进行管理,从而可以基于实时获取到的应用服务器中的当前连接信息和当前运行信息,实现对应用服务集群通信的统一管理。
示例性的,S140还包括:管理服务器将每个应用服务器对应的当前连接信息和当前运行信息发送至客户端中;客户端通过预设展示方式,展示每个应用服务器对应的当前连接信息和当前运行信息。
其中,预设展示方式可以是指预先设置的客户端对每个应用服务器对应的当前连接信息和当前运行信息的展示方式。例如,预设展示方式可以是可视化视图,用图表、表格等。
具体的,客户端接收管理服务器发送的每个应用服务器对应的当前连接信息和当前运行信息,并通过预设展示方式,对每个应用服务器对应的当前连接信息和当前运行信息进行展示,从而便于用户更加直观地了解应用服务集群中的每个应用服务器的网络连接情况和负载情况,及时发现问题并采取相应措施。
本发明实施例的技术方案,通过应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息。每个应用服务器通过调用与管理服务器建立连接的通信接口,将当前连接信息发送至管理服务器中,从而实时更新应用服务器上客户端的连接数和连接状态。每个应用服务器通过存储服务集群,将当前运行信息发送至管理服务器中,从而及时发现和处理应用服务器的异常情况,保证应用服务器的稳定性和可靠性。管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息对各个应用服务器进行管理,从而实现应用服务集群通信的统一管理,可以实时获取到应用服务器中的当前连接信息和当前运行信息,提高应用服务集群的性能和稳定性。
示例性的,本实施例所涉及的一种集群通信管理方法的总体方案如图3所示,预设网络通信协议可以是WebSocket协议,通信接口可以是为WebSocket对应的API(Application Programming Interface)接口,存储服务集群可以是Redis服务集群,图中的监控服务器对应管理服务器,节点服务器对应应用服务器。首先,监控服务器通过WebSocketAPI接口建立与应用服务集群中各个节点服务器的连接,通过节点服务器返回的当前连接信息来实时更新每个节点服务器上客户端的连接数和连接状态,每个节点能够单独上传数据给监控服务中的节点信息监控处理程序。使用Redis作为数据存储和管理工具,利用其高效的内存读写和数据持久化功能,实现了WebSocket状态的分布式管理,可以根据服务器的负载情况,调整WebSocket连接的分配和管理,从而实现了分布式系统的高效运行。最后,客户端基于html5、CSS、VUE等技术搭建网页完成可视化界面,从而使客户端实时显示整个系统的连接数和连接状态。
实施例二
图4为本发明实施例二提供的一种集群通信管理方法的流程图,本实施例在上述各实施例的基础上,对步骤“管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息对各个应用服务器进行管理”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图4,本实施例提供的另一种集群通信管理方法具体包括以下步骤:
S210、应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态。
S220、每个应用服务器通过调用与管理服务器建立连接的通信接口,将当前连接信息发送至管理服务器中。
S230、每个应用服务器通过存储服务集群,将当前运行信息发送至管理服务器中。
S240、管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息,确定每个应用服务器对应的当前负载值。
其中,当前运行信息包括应用服务器的当前中央处理器(Central ProcessingUnit,CPU)使用量和当前内存使用量。当前CPU使用量可以是指当前时刻下应用服务器中运行的程序占用的CPU资源。当前内存使用量可以是指当前时刻下应用服务器中一个程序或者操作系统在运行过程中所使用的临时存储空间的大小。当前负载值可以是指用于评估出应用服务器负载水平的具体数值。
具体的,管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息,对应用服务集群中每个应用服务器的负载水平进行评估。基于评估结果,确定每个应用服务器对应的当前负载值,从而对每个应用服务器的当前负载值进行监控。
示例性的,S240可以包括:管理服务器基于每个应用服务器对应的建立连接的每个客户端对应的当前连接状态,确定存在连接的有效应用服务器和不存在连接的无效应用服务器;基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,确定每个有效应用服务器对应的当前负载值;将每个无效应用服务器对应的当前负载值确定为0。
其中,有效应用服务器可以是指应用服务集群中存在客户端连接的应用服务器。无效应用服务器可以是指应用服务集群中不存在客户端连接的应用服务器。最大连接数可以是指有效应用服务器可以连接的客户端的最大数量。CPU总量可以是指有效应用服务器对应的总CPU资源。内存总量可以是指有效应用服务器上可用的物理内存和虚拟内存的总和。
具体的,管理服务器基于每个应用服务器对应的建立连接的每个客户端对应的当前连接状态,确定每个应用服务器上对应的当前客户端连接数量。基于每个应用服务器上对应的当前客户端连接数量,确定存在连接的有效应用服务器和不存在连接的无效应用服务器。基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,对每个有效应用服务器当前时刻下的负载情况进行评估。基于评估结果,确定每个有效应用服务器对应的当前负载值。若应用服务器为无效应用服务器,则将每个无效应用服务器对应的当前负载值确定为0,从而对每个应用服务器的当前负载值进行监控。
示例性的,基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,确定每个有效应用服务器对应的当前负载值,包括:针对每个有效应用服务器而言,将该有效应用服务器对应的当前已连接的客户端数量除以允许的最大连接数,获得第一相除结果;将该有效应用服务器对应的当前CPU使用量除以CPU总量,获得第二相除结果;将该有效应用服务器对应的当前内存使用量除以内存总量,获得第三相除结果;对第一相除结果、第二相除结果和第三相除结果进行加权处理,确定该有效应用服务器对应的当前负载值。
其中,第一相除结果可以是指当前时刻下有效服务器内已连接的客户端数量占允许的最大连接数的占比数值。第二相除结果可以是指当前时刻下有效服务器的CPU使用量占CPU总量的比值。第三相除结果可以是指当前时刻下有效服务器的内存使用量占内存总量的比值。
具体的,针对每个有效应用服务器而言,基于该有效应用服务器对应的当前已连接的客户端数量和允许的最大连接数,确定当前时刻下该有效服务器内已连接的客户端数量占允许的最大连接数的比值,获得第一相除结果。基于该有效应用服务器对应的当前CPU使用量和CPU总量,确定当前时刻下该有效服务器的CPU使用量占CPU总量的比值,获得第二相除结果。基于该有效应用服务器对应的当前内存使用量和内存总量,确定当前时刻下该有效服务器的内存使用量占内存总量的比值,获得第三相除结果。对第一相除结果、第二相除结果和第三相除结果进行不同的权重赋值,并按照权重进行加权平均计算,确定该有效应用服务器对应的当前负载值。
示例性的,可以用分别代表CPU总量、内存总量和允许的最大连接数,cj,rj,ej分别代表当前CPU使用量、当前内存使用量和当前已连接的客户端数量,则有效应用服务器对应第一相除结果为/>有效应用服务器对应的第二相除结果为/>有效应用服务器对应的第三相除结果为/>对第一相除结果、第二相除结果和第三相除结果分别进行不同的权重赋值(权重可以分别为e,c,r),并按照权重进行加权平均计算,确定该有效应用服务器对应的当前负载值为/>
S250、管理服务器若检测到当前应用服务器正在与当前客户端建立通信连接,则基于每个应用服务器对应的当前负载值进行负载均衡,确定目标应用服务器。
其中,当前应用服务器可以是指当前时刻下处于正在与客户端连接状态下的应用服务器。当前客户端可以是指当前时刻处于正在与应用服务器连接状态下的客户端。目标应用服务器可以是指当前时刻下应用服务集群中负载值最小的应用服务器。
具体的,管理服务器对获得的当前连接状态进行检测,基于检测结果确定当前时刻是否存在应用服务器正在与当前客户端建立通信连接。若检测到当前应用服务器正在与当前客户端建立通信连接,则基于每个应用服务器对应的当前负载值,找到当前负载值最小的应用服务器,并将其确定为目标应用服务器,从而调整各个应用服务器的负载,实现负载均衡。
S260、若当前应用服务器不同于目标应用服务器,则生成目标应用服务器对应的通信连接分配信息,并将通信连接分配信息发送至当前应用服务器。
其中,通信连接分配信息可以是指用于确定如何将客户端与目标应用服务器建立通信连接的相关配置信息。
具体的,将当前应用服务器与目标应用服务器进行比较,基于比较结果确定当前应用服务器与目标应用服务器是否相同。若当前应用服务器不同于目标应用服务器,此时当前应用服务器不满足应用服务集群的负载均衡需求,则生成目标应用服务器对应的通信连接分配信息,并将通信连接分配信息发送至当前应用服务器,从而对当前应用服务器的负载进行调整。
S270、当前应用服务器基于通信连接分配信息,停止与当前客户端建立通信连接,并控制目标应用服务器与当前客户端建立通信连接。
具体的,当前应用服务器基于通信连接分配信息与当前客户端停止建立通信连接,并基于通信连接分配信息控制目标应用服务器与当前客户端建立通信连接,从而实现服务集群中各个应用服务器的动态负载均衡,提高应用服务集群的稳定性。
本发明实施例的技术方案,通过管理服务器基于每个应用服务器对应的当前连接信息和当前运行信息,确定每个应用服务器对应的当前负载值,从而对每个应用服务器的当前负载值进行监控。管理服务器若检测到当前应用服务器正在与当前客户端建立通信连接,则基于每个应用服务器对应的当前负载值进行负载均衡,确定目标应用服务器,从而调整各个应用服务器的负载,实现负载均衡。若当前应用服务器不同于目标应用服务器,则生成目标应用服务器对应的通信连接分配信息,并将通信连接分配信息发送至当前应用服务器。当前应用服务器基于通信连接分配信息,停止与当前客户端建立通信连接,并控制目标应用服务器与当前客户端建立通信连接,从而实时根据当前连接状态对应用服务集群的各个应用服务器负载进行调整,实现应用服务集群中各个应用服务器动态的负载均衡,降低应用服务集群的复杂度和维护成本,极大提高了应用服务集群的性能和稳定性。
实施例三
图5为本发明实施例三提供的一种集群通信管理系统的结构示意图。如图5所示,该系统包括:应用服务集群310、存储服务集群320和管理服务器330。
其中,应用服务集群310中的每个应用服务器用于获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,所述当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态;
每个应用服务器还用于通过调用与管理服务器330建立连接的通信接口,将所述当前连接信息发送至所述管理服务器330中;
每个应用服务器还用于通过存储服务集群320,将当前运行信息发送至所述管理服务器330中;
所述管理服务器330用于基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理。
本实施例的技术方案,通过应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息。每个应用服务器通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中,从而实时更新应用服务器上客户端的连接数和连接状态。每个应用服务器通过存储服务集群,将当前运行信息发送至所述管理服务器中,从而及时发现和处理应用服务器的异常情况,保证应用服务器的稳定性和可靠性。所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理,从而实现应用服务集群通信的统一管理,可以实时获取到应用服务器中的当前连接信息和当前运行信息,提高应用服务集群的性能和稳定性。
可选地,每个应用服务器具体用于:创建预设网络通信协议对应的网络通信服务;通过所述网络通信服务,在监听到基于预设网络通信协议与客户端建立通信连接的连接事件时,将当前已连接的客户端数量加1处理;通过所述网络通信服务,在监听到基于预设网络通信协议与客户端建立通信断开的断开事件时,将当前已连接的客户端数量减1处理;向建立连接的每个客户端发送心跳包,确定每个客户端对应的当前连接状态。
可选地,每个应用服务器具体用于:若建立连接的客户端接收到心跳包,则确定该客户端对应的当前连接状态为已连接状态;若建立连接的客户端未接收到心跳包,则确定该客户端对应的当前连接状态为已断开状态。
可选地,每个应用服务器具体用于:将当前运行信息发布至存储服务集群;存储服务集群中处于当前运行状态的目标存储服务器通过消息订阅方式,获得每个应用服务器发布的当前运行信息;所述目标存储服务器将获得的每个应用服务器的当前运行信息发送至所述管理服务器中。
可选地,管理服务器330,具体用于:基于每个应用服务器对应的所述当前连接信息和所述当前运行信息,确定每个应用服务器对应的当前负载值;所述管理服务器若检测到当前应用服务器正在与当前客户端建立通信连接,则基于每个应用服务器对应的当前负载值进行负载均衡,确定目标应用服务器;若所述当前应用服务器不同于所述目标应用服务器,则生成所述目标应用服务器对应的通信连接分配信息,并将所述通信连接分配信息发送至所述当前应用服务器;所述当前应用服务器基于所述通信连接分配信息,停止与当前客户端建立通信连接,并控制所述目标应用服务器与当前客户端建立通信连接。
可选地,所述当前运行信息包括应用服务器的当前中央处理器CPU使用量和当前内存使用量,管理服务器330,具体用于:基于每个应用服务器对应的建立连接的每个客户端对应的当前连接状态,确定存在连接的有效应用服务器和不存在连接的无效应用服务器;基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,确定每个有效应用服务器对应的当前负载值;将每个无效应用服务器对应的当前负载值确定为0。
可选地,管理服务器330,具体用于:针对每个有效应用服务器而言,将该有效应用服务器对应的当前已连接的客户端数量除以允许的最大连接数,获得第一相除结果;将该有效应用服务器对应的当前CPU使用量除以CPU总量,获得第二相除结果;将该有效应用服务器对应的当前内存使用量除以内存总量,获得第三相除结果;对所述第一相除结果、所述第二相除结果和所述第三相除结果进行加权处理,确定该有效应用服务器对应的当前负载值。
可选地,管理服务器330,还用于:将每个应用服务器对应的所述当前连接信息和所述当前运行信息发送至客户端中;所述客户端通过预设展示方式,展示每个应用服务器对应的所述当前连接信息和所述当前运行信息。
可选地,所述预设网络通信协议为WebSocket协议,所述通信接口为WebSocket接口;所述存储服务集群为Redis服务集群。
本发明实施例所提供的集群通信管理系统可执行本发明任意实施例所提供的集群通信管理方法,具备执行方法相应的功能模块和有益效果。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种集群通信管理方法,其特征在于,所述方法包括:
应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,所述当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态;
每个应用服务器通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中;
每个应用服务器通过存储服务集群,将当前运行信息发送至所述管理服务器中;
所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理。
2.根据权利要求1所述的方法,其特征在于,应用服务集群中的每个应用服务器获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,包括:
应用服务集群中的每个应用服务器创建预设网络通信协议对应的网络通信服务;
通过所述网络通信服务,在监听到基于预设网络通信协议与客户端建立通信连接的连接事件时,将当前已连接的客户端数量加1处理;
通过所述网络通信服务,在监听到基于预设网络通信协议与客户端建立通信断开的断开事件时,将当前已连接的客户端数量减1处理;
向建立连接的每个客户端发送心跳包,确定每个客户端对应的当前连接状态。
3.根据权利要求2所述的方法,其特征在于,向建立连接的每个客户端发送心跳包,确定每个客户端对应的当前连接状态,包括:
若建立连接的客户端接收到心跳包,则确定该客户端对应的当前连接状态为已连接状态;
若建立连接的客户端未接收到心跳包,则确定该客户端对应的当前连接状态为已断开状态。
4.根据权利要求1所述的方法,其特征在于,每个应用服务器通过存储服务集群,将当前运行信息发送至所述管理服务器中,包括:
每个应用服务器将当前运行信息发布至存储服务集群;
存储服务集群中处于当前运行状态的目标存储服务器通过消息订阅方式,获得每个应用服务器发布的当前运行信息;
所述目标存储服务器将获得的每个应用服务器的当前运行信息发送至所述管理服务器中。
5.根据权利要求1所述的方法,其特征在于,所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理,包括:
所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息,确定每个应用服务器对应的当前负载值;
所述管理服务器若检测到当前应用服务器正在与当前客户端建立通信连接,则基于每个应用服务器对应的当前负载值进行负载均衡,确定目标应用服务器;
若所述当前应用服务器不同于所述目标应用服务器,则生成所述目标应用服务器对应的通信连接分配信息,并将所述通信连接分配信息发送至所述当前应用服务器;
所述当前应用服务器基于所述通信连接分配信息,停止与当前客户端建立通信连接,并控制所述目标应用服务器与当前客户端建立通信连接。
6.根据权利要求5所述的方法,其特征在于,所述当前运行信息包括应用服务器的当前中央处理器CPU使用量和当前内存使用量;
所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息,确定每个应用服务器对应的当前负载值,包括:
所述管理服务器基于每个应用服务器对应的建立连接的每个客户端对应的当前连接状态,确定存在连接的有效应用服务器和不存在连接的无效应用服务器;
基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,确定每个有效应用服务器对应的当前负载值;
将每个无效应用服务器对应的当前负载值确定为0。
7.根据权利要求6所述的方法,其特征在于,基于每个有效应用服务器对应的当前已连接的客户端数量、当前CPU使用量、当前内存使用量、允许的最大连接数、CPU总量和内存总量,确定每个有效应用服务器对应的当前负载值,包括:
针对每个有效应用服务器而言,将该有效应用服务器对应的当前已连接的客户端数量除以允许的最大连接数,获得第一相除结果;
将该有效应用服务器对应的当前CPU使用量除以CPU总量,获得第二相除结果;
将该有效应用服务器对应的当前内存使用量除以内存总量,获得第三相除结果;
对所述第一相除结果、所述第二相除结果和所述第三相除结果进行加权处理,确定该有效应用服务器对应的当前负载值。
8.根据权利要求1所述的方法,其特征在于,所述管理服务器基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理,还包括:
所述管理服务器将每个应用服务器对应的所述当前连接信息和所述当前运行信息发送至客户端中;
所述客户端通过预设展示方式,展示每个应用服务器对应的所述当前连接信息和所述当前运行信息。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述预设网络通信协议为WebSocket协议,所述通信接口为WebSocket接口;
所述存储服务集群为Redis服务集群。
10.一种集群通信管理系统,其特征在于,所述系统包括:应用服务集群、存储服务集群和管理服务器;其中,
应用服务集群中的每个应用服务器用于获取基于预设网络通信协议与客户端建立通信连接的当前连接信息,所述当前连接信息包括:当前已连接的客户端数量和建立连接的每个客户端对应的当前连接状态;
每个应用服务器还用于通过调用与管理服务器建立连接的通信接口,将所述当前连接信息发送至所述管理服务器中;
每个应用服务器还用于通过存储服务集群,将当前运行信息发送至所述管理服务器中;
所述管理服务器用于基于每个应用服务器对应的所述当前连接信息和所述当前运行信息对各个应用服务器进行管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665980.2A CN117640721A (zh) | 2023-12-06 | 2023-12-06 | 一种集群通信管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311665980.2A CN117640721A (zh) | 2023-12-06 | 2023-12-06 | 一种集群通信管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117640721A true CN117640721A (zh) | 2024-03-01 |
Family
ID=90037379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665980.2A Pending CN117640721A (zh) | 2023-12-06 | 2023-12-06 | 一种集群通信管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117640721A (zh) |
-
2023
- 2023-12-06 CN CN202311665980.2A patent/CN117640721A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106899680B (zh) | 多区块链的分片处理方法和装置 | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
US8930521B2 (en) | Method, apparatus, and computer program product for enabling monitoring of a resource | |
CN103179217B (zh) | 一种用于web应用服务器群组的负载均衡方法和装置 | |
US20070088703A1 (en) | Peer-to-peer auction based data distribution | |
US20060179059A1 (en) | Cluster monitoring system with content-based event routing | |
US10445167B1 (en) | Automated method and system for diagnosing load performance issues | |
US20060069777A1 (en) | Request message control method for using service and service providing system | |
CN104426800A (zh) | 用于在对等通信网络中管理消息队列的系统和方法 | |
CN108696400A (zh) | 网络监测方法和装置 | |
US10498617B1 (en) | System, method, and computer program for highly available and scalable application monitoring | |
EP3672203A1 (en) | Distribution method for distributed data computing, device, server and storage medium | |
JP2009026221A (ja) | ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム | |
CN114371931A (zh) | 服务集群资源分配方法、装置及计算机设备 | |
US9009352B1 (en) | Transformation of common information model messages | |
CN112448987A (zh) | 一种熔断降级的触发方法、系统和存储介质 | |
CN110597631B (zh) | 资源管理方法、监控服务器、代理服务器以及存储介质 | |
US8438267B2 (en) | Internet-wide scheduling of transactions | |
CN106790610A (zh) | 一种云系统消息分发方法,装置和系统 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
CN115665173B (zh) | 一种基于MQ的WebSocket通信方法、系统和存储介质 | |
CN116546028A (zh) | 服务请求的处理方法、装置、存储介质及电子设备 | |
CN116775420A (zh) | 基于Flink流计算的信创云平台资源展示和预警方法及系统 | |
CN117640721A (zh) | 一种集群通信管理方法及系统 | |
CN115952003A (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 |