一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通信控制方法与流程

2022-06-11 06:48:59 来源:中国专利 TAG:


1.本发明实施例涉及一种通信控制方法。


背景技术:

2.常见的实现freeswitch服务的负载均衡方案是:网关接口服务通过esl(event socket library)与freeswitch进行连接,经由esl连接对节点状态进行轮询,当节点状态表明需要进行部署新的节点时,才能通过人工执行相应的扩容动作,相应的架构如图1所示。上述常见的freeswitch服务必须通过轮询过程来实现负载均衡,其无法自动发现节点状态,故无法实现自动扩容。


技术实现要素:

3.本发明的目的是提供一种通信控制方法,其可通过主动监测节点的服务状态来实现自适应性扩容/缩容(即节点的部署/回收),从而可实现通信过程中的负载均衡,进而提高通信服务的可靠性。
4.为了实现上述目的,本发明提供一种通信控制方法,应用于服务端,所述通信控制方法包括:监测节点组的服务状态;以及在所述节点组的服务状态处于正常的情况下,通基于所述节点组的会话并发数执行节点组的更新操作。
5.在至少一个实施例中,所述基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数大于并发数阈值的情况下,基于部署策略部署所述更新操作所涉及的特定节点,其中,所述部署策略同所述会话并发数与所述并发数阈值两者相关联。
6.在至少一个实施例中,所述基于部署策略部署所述更新操作所涉及的特定节点包括:基于所述部署策略对所述特定节点进行部署操作,以获取所述特定节点的节点信息;在集群管理器中添加所述特定节点的节点信息;以及执行所述特定节点的上线操作。
7.在至少一个实施例中,所述基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数小于或等于并发数阈值的情况下,基于回收策略回收所述更新操作所涉及的特定节点,其中,所述回收策略同所述会话并发数与所述并发数阈值两者相关联。
8.在至少一个实施例中,所述基于回收策略回收所述更新操作所涉及的特定节点包括:基于所述回收策略执行所述特定节点的下线操作;以及在所述特定节点的服务状态处于未上线的情况下,删除集群管理器中的所述特定节点的节点信息。
9.在至少一个实施例中,所述通信控制方法还包括:在所述节点组中的节点的服务状态处于异常的情况下,执行所述节点的下线操作。
10.通过上述技术方案,本发明创造性地首先通过服务端监测节点组的服务状态;当所述节点组的服务状态正常时,通过所述服务端基于所述节点组的会话并发数执行节点组的更新操作,由此可通过客户端获取所述更新操作所涉及的特定节点的服务状态并基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。即,可通过服务端
主动监测节点的服务状态来实现自适应性扩容/缩容(即节点的部署/回收),因此,本发明可实现通信过程中的负载均衡,进而提高通信服务的可靠性。
11.本发明第二方面提供一种通信控制方法,应用于客户端,所述通信控制方法包括:响应于服务端所执行的节点组的更新操作,获取所述更新操作所涉及的特定节点的服务状态;以及基于所述特定节点的服务状态,控制通信连接和/或通信请求。
12.在至少一个实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端部署所述特定节点,在所述特定节点的服务状态处于正常的情况下,建立所述特定节点的通信连接;以及基于负载均衡策略并经由所述通信连接向所述特定节点发送通信请求。
13.在至少一个实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端部署所述特定节点,在所述特定节点的服务状态处于失联的情况下,删除所述特定节点的通信连接。
14.在至少一个实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端回收所述特定节点,在所述特定节点的服务状态处于下线中的情况下,停止经由所述通信连接向所述特定节点发送通信请求;以及删除所述特定节点的通信连接。
15.在至少一个实施例中,所述控制通信连接和/或通信请求包括响应于所述服务端回收所述特定节点,在所述特定节点的服务状态处于未上线的情况下,不执行操作。
16.在至少一个实施例中,所述通信控制方法还包括:响应于所述服务端所执行的节点的下线操作,获取该节点的服务状态;在所述节点的服务状态处于下线中的情况下,停止经由所述通信连接向所述节点发送通信请求;以及删除所述节点的通信连接。
17.通过上述技术方案,本发明创造性地响应于服务端执行的节点组的更新操作,通过客户端获取所述更新操作所涉及的特定节点的服务状态并基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。即,可通过服务端主动监测节点的服务状态来实现自适应性扩容/缩容(即节点的部署/回收),因此,本发明可实现通信过程中的负载均衡,进而提高通信服务的可靠性。
18.本发明第三方面提供一种通信控制方法,所述通信控制方法包括:通过服务端监测节点组的服务状态;在所述节点组的服务状态处于正常的情况下,通过所述服务端基于所述节点组的会话并发数执行节点组的更新操作;通过客户端获取所述更新操作所涉及的特定节点的服务状态;以及基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。
19.有关本发明提供的通信控制方法的具体细节及益处可参阅上述针对应用于服务端/客户端的通信控制方法的描述,于此不再赘述。
20.本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的通信控制方法。
21.本发明第五方面提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的通信控制方法。
22.本发明第六方面提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述的通信控制方法。
23.本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
24.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
25.图1是现有技术中的负载均衡方案的示意图;
26.图2是本发明一实施例提供的通信控制方法的流程图;
27.图3是本发明一实施例提供的freeswitch构架的示意图;
28.图4是本发明一实施例提供的节点服务状态的动态变化的示意图;
29.图5是本发明一实施例提供的freeswitch构架的示意图;以及
30.图6是本发明一实施例提供的通信控制过程的流程图。
具体实施方式
31.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
32.freeswitch构架可包括多个节点,通过探测多个节点的状态实现与网关与节点之间的通信。
33.本发明一实施例提供一种应用于服务端的通信控制方法。所述通信控制方法可包括:监测节点组的服务状态;以及在所述节点组的服务状态处于正常的情况下,基于所述节点组的会话并发数执行节点组的更新操作。
34.其中,所述监测节点组的服务状态。
35.服务端通过esl心跳监控探测freeswitch服务的节点组中的各个节点的服务状态(即存活状态);并且,通过监测节点组所在的网络、机器(例如服务器)、系统等环境来确定freeswitch服务的启动状态。
36.当freeswitch服务启动正常且所述节点组的各个节点的服务状态正常时,表明所述节点组的服务状态处于正常状态。在所述节点组的服务状态正常的情况下,统计各个节点的会话数量(例如通话数量),并计算得到所有节点的会话数量(例如通话数量),即得到所述节点组的会话并发数(例如通话并发数)。
37.下面分别根据所述节点组的会话并发数,服务器管理节点的部署/回收处理,以对节点组进行更新。
38.在一实施例中,所述基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数大于并发数阈值的情况下,基于部署策略部署所述更新操作所涉及的特定节点。
39.其中,所述部署策略同所述会话并发数与所述并发数阈值两者相关联。例如,所述部署策略可为基于所述会话并发数与所述并发数阈值的差值确定所述特定节点的数目。
40.具体地,所述基于部署策略部署所述更新操作所涉及的特定节点可包括:基于所述部署策略对所述特定节点进行部署操作,以获取所述特定节点的节点信息;在集群管理器中添加所述特定节点的节点信息;以及执行所述特定节点的上线操作。
41.在所述会话并发数大于并发数阈值的情况下,表明当前节点组无法满足业务需求,所述通过所述服务端基于部署策略部署所述特定节点具体包括以下处理过程。
42.首先,所述服务端1(如图3所示)调用更新模块10,以基于docker搭建jenkins容器来执行节点部署操作(例如,根据所述会话并发数与所述并发数阈值之间的差值确定所需部署节点的数目),当部署成功后返回容器服务的ip、端口、分组等信息(即节点的ip、端口及分组等节点信息)。
43.然后,调用集群管理模块30(如图3所示)在集群管理器(例如zookeeper3)中的相应的节点分组(例如,根据节点的集群信息对节点进行分组)中新增相应的节点(例如,按照部署策略确定的节点数目进行添加),由此可实现对不同业务间的资源的隔离(即对节点进行分组管理,如图5所示),从而通过复用zookeeper的能力可实现对节点的便捷及高效可用性;并且执行节点的上线操作。具体地,先在zookeeper 3中相应的分组路径下添加节点信息,如图5所示,在一个分组路径中添加节点a、b的信息,在另一个分组路径中添加节点c、d的信息。此时,新节点的服务状态为未上线。其中,所述节点信息包含:ip、端口、服务状态、分组等。再执行新节点上线,此时新节点的服务状态由未上线变成上线中(如图4所示),触发存活状态探测模块20:当存活状态探测模块20监测到正常状态时,新节点的服务状态由上线中变化为正常(如图4所示);而当存活状态探测模块20监测到异常时,新节点的服务状态由上线中变化为失联(如图4所示)。
44.在另一实施例中,所述基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数小于或等于并发数阈值的情况下,基于回收策略回收所述更新操作所涉及的特定节点。
45.其中,所述回收策略同所述会话并发数与所述并发数阈值两者相关联。例如,所述部署策略可为基于所述并发数阈值与所述会话并发数的差值确定所述特定节点的数目。
46.具体地,所述基于回收策略回收所述更新操作所涉及的特定节点包括:基于所述回收策略执行所述特定节点的下线操作;以及在所述特定节点的服务状态处于未上线的情况下,删除集群管理器中的所述特定节点的节点信息。
47.在所述会话并发数小于或等于所述并发数阈值的情况下,表明当前节点组超出业务需求。相应地,所述通过所述服务端基于回收策略回收所述特定节点具体包括以下处理过程。
48.调用集群管理模块30在集群管理器(例如zookeeper 3)中的相应的节点分组中执行节点的下线操作(例如,随机地对相应数目的节点执行下线操作)及删除相应的节点。具体地,执行节点的下线操作,此时节点的服务状态由正常变成下线中(如图4所示),触发存活状态探测模块20以监测相应的节点的会话并发数:当所述会话并发数不为0时,相应节点的服务状态由正常变化为下线中(如图4所示);当所述会话并发数为0时,相应节点的服务状态由下线中变化为未上线(如图4所示)。
49.在一实施例中,所述通信控制方法还可包括:在所述节点组中的节点的服务状态处于异常的情况下,执行所述节点的下线操作。
50.当所述节点组出现以下任一项内容时,表明所述节点组的服务状态处于异常:freeswitch服务启动异常,或所述节点组中的任意节点的服务状态异常(例如,机器故障或程序异常等)。freeswitch服务启动异常可为由网络、机器、系统等环境原因造成服务异常(具体地,例如由服务器断电、服务器硬件异常、网络中断等原因造成的服务异常),例如,通过网络连接不到服务器节点。
51.首先,在所述节点组中的节点的服务状态处于异常的情况下,表明该节点不适合用于执行业务请求,此时通过服务端执行该节点的下线操作。由于客户端2通过服务订阅模块40订阅zookeeper 3以获取节点的服务状态,所述客户端2可获取该节点的服务状态。接着,在所述节点的服务状态处于下线中的情况下,表明此时该节点无法处理通信请求,所述客户端2停止经由状态为下线中的节点所建立的通信连接,通过所述客户端2删除该节点的通信连接。服务端1不断探测该下线节点历史通话的执行情况,当发现所有通话结果,让状态变更为下线。由此,可解决业务请求的平滑下线问题。
52.本发明一实施例提供一种应用于客户端的通信控制方法。所述通信控制方法包括:响应于服务端所执行的节点组的更新操作,获取所述更新操作所涉及的特定节点的服务状态;以及基于所述特定节点的服务状态,控制通信连接和/或通信请求。
53.具体地,如图3所示,客户端2通过服务订阅模块40订阅zookeeper 3以获取节点的服务状态。其中,所述客户端2可基于连接池60(例如,其可为数据库连接池;更为具体地,其可为事件套接字库(esl)连接池)进行通信。客户端2基于节点的服务状态,执行相应的负载均衡策略模块50及维护连接池,从而实现节点服务的自动发现。
54.下面根据所述特定节点的服务状态,从以下两个方面描述客户端控制通信连接和/或通信请求(例如呼叫请求)。
55.一方面,在所述会话并发数大于并发数阈值的情况下,表明当前节点组无法满足业务需求,根据上述内容(或步骤s202)部署新的节点(即特定接节点),然后根据监测到的特定节点的服务状态,新建或删除通信连接,具体详见下文描述的两个实施例。
56.在一实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端部署所述特定节点,在所述特定节点的服务状态处于正常的情况下,建立所述特定节点的通信连接;以及基于负载均衡策略并经由所述通信连接向所述特定节点发送通信请求。
57.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。首先,当订阅到的特定节点的服务状态为正常时,所述客户端2新建所述特定节点与连接池之间的通信连接,以加入所述连接池。其次,所述客户端2基于负载均衡策略模块50提供的负载均衡策略并经由所建立的通信连接向所述特定节点发送通信请求,以实现节点的负载均衡(即实现每个节点的会话并发数均衡)。
58.在一实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端部署所述特定节点,在所述特定节点的服务状态处于失联的情况下,删除所述特定节点的通信连接。
59.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。当订阅到的特定节点的服务状态为失联时,删除所述特定节点与连接池(例如esl连接池)间的连接(例如esl连接)。
60.另一方面,在所述会话并发数小于或等于所述并发数阈值的情况下,表明当前节点组超出业务需求,根据上述步骤s202回收一些节点(即特定接节点),然后根据监测到的特定节点的服务状态,停止发送通信请求或删除通信连接,具体详见下文描述的两个实施例。
61.在一实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端回收所述特定节点,在所述特定节点的服务状态处于下线中的情况下,停止经由所述通信连接向
所述特定节点发送通信请求;以及删除所述特定节点的通信连接。
62.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。首先,当订阅到的特定节点的服务状态为下线中时,表明此时所述特定节点无法处理通信请求,所述客户端2停止经由所述通信连接向所述特定节点发送通信请求且删除所述特定节点的通信连接。由所述特定节点所在的节点组中的其他节点执行该特定节点要执行的通信请求,并由服务端1不断探测该特定节点的历史通话的执行情况,当发现所有通话结果,服务端执行其他节点的下线操作。由此,可解决业务请求的平滑下线问题。
63.在一实施例中,所述控制通信连接和/或通信请求包括:响应于所述服务端回收所述特定节点,在所述特定节点的服务状态处于未上线的情况下,不执行操作。此时,服务端1则不断探测该特定节点的服务状态,当服务状态变更为正常时,由服务端1更新该特定节点的状态为正常。
64.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。当订阅到的特定节点的服务状态为未上线时,表明所述特定节点完成下线操作,所述客户端2删除所述特定节点与连接池(例如esl连接池)间的连接(例如esl连接)。
65.上述描述的过程可实现系统的自动扩容和缩容,并且还支持流量的平滑上线。
66.在另一实施例中,所述通信控制方法还包括:响应于所述服务端所执行的节点的下线操作,获取该节点的服务状态;在所述节点的服务状态处于下线中的情况下,停止经由所述通信连接向所述节点发送通信请求;以及删除所述节点的通信连接。
67.具体内容可详见上述通过服务端执行的下线操作的相关内容的描述。
68.综上所述,本发明创造性地首先通过服务端监测节点组的服务状态;当所述节点组的服务状态正常时,通过所述服务端基于所述节点组的会话并发数执行节点组的更新操作,由此可通过客户端获取所述更新操作所涉及的特定节点的服务状态并基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。即,可通过服务端主动监测节点的服务状态来实现自适应性扩容/缩容(即节点的部署/回收),因此,本发明可实现通信过程中的负载均衡,进而提高通信服务的可靠性。
69.图2是本发明一实施例提供的通信控制方法的流程图。所述通信控制方法可包括以下步骤s201-s204。
70.步骤s201,通过服务端监测节点组的服务状态。
71.服务端通过esl心跳监控探测freeswitch服务的节点组中的各个节点的服务状态(即存活状态);并且,通过监测节点组所在的网络、机器(例如服务器)、系统等环境来确定freeswitch服务的启动状态。
72.步骤s202,在所述节点组的服务状态处于正常的情况下,通过所述服务端基于所述节点组的会话并发数执行节点组的更新操作。
73.当freeswitch服务启动正常且所述节点组的各个节点的服务状态正常时,表明所述节点组的服务状态处于正常状态。在所述节点组的服务状态正常的情况下,统计各个节点的会话数量(例如通话数量),并计算得到所有节点的会话数量(例如通话数量),即得到所述节点组的会话并发数(例如通话并发数)。
74.下面分别根据所述节点组的会话并发数,服务器管理节点的部署/回收处理,以对节点组进行更新。
75.在一实施例中,对于步骤s202,所述通过所述服务端基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数大于并发数阈值的情况下,通过所述服务端基于部署策略部署所述特定节点。
76.其中,所述部署策略同所述会话并发数与所述并发数阈值两者相关联。例如,所述部署策略可为基于所述会话并发数与所述并发数阈值的差值确定所述特定节点的数目。
77.具体地,所述通过所述服务端基于部署策略部署所述特定节点可包括:基于所述部署策略对所述特定节点进行部署操作,以获取所述特定节点的节点信息;在集群管理器中添加所述特定节点的节点信息;以及执行所述特定节点的上线操作。
78.在所述会话并发数大于并发数阈值的情况下,表明当前节点组无法满足业务需求,所述通过所述服务端基于部署策略部署所述特定节点具体包括以下处理过程。
79.首先,所述服务端1(如图3所示)调用更新模块10,以基于docker搭建jenkins容器来执行节点部署操作(例如,根据所述会话并发数与所述并发数阈值之间的差值确定所需部署节点的数目),当部署成功后返回容器服务的ip、端口、分组等信息(即节点的ip、端口及分组等节点信息)。
80.然后,调用集群管理模块30(如图3所示)在集群管理器(例如zookeeper3)中的相应的节点分组(例如,根据节点的集群信息对节点进行分组)中新增相应的节点(例如,按照部署策略确定的节点数目进行添加),由此可实现对不同业务间的资源的隔离(即对节点进行分组管理,如图5所示),从而通过复用zookeeper的能力可实现对节点的便捷及高效可用性;并且执行节点的上线操作。具体地,先在zookeeper 3中相应的分组路径下添加节点信息,如图5所示,在一个分组路径中添加节点a、b的信息,在另一个分组路径中添加节点c、d的信息。此时,新节点的服务状态为未上线。其中,所述节点信息包含:ip、端口、服务状态、分组等。再执行新节点上线,此时新节点的服务状态由未上线变成上线中(如图4所示),触发存活状态探测模块20:当存活状态探测模块20监测到正常状态时,新节点的服务状态由上线中变化为正常(如图4所示);而当存活状态探测模块20监测到异常时,新节点的服务状态由上线中变化为失联(如图4所示)。
81.在另一实施例中,对于步骤s202,所述基于所述节点组的会话并发数执行节点组的更新操作包括:在所述会话并发数小于或等于并发数阈值的情况下,通过所述服务端基于回收策略回收所述特定节点。
82.其中,所述回收策略同所述会话并发数与所述并发数阈值两者相关联。例如,所述部署策略可为基于所述并发数阈值与所述会话并发数的差值确定所述特定节点的数目。
83.具体地,所述通过所述服务端基于回收策略回收所述特定节点包括:基于所述回收策略执行所述特定节点的下线操作;以及在所述特定节点的服务状态处于未上线的情况下,删除集群管理器中的所述特定节点的节点信息。
84.在所述会话并发数小于或等于所述并发数阈值的情况下,表明当前节点组超出业务需求。相应地,所述通过所述服务端基于回收策略回收所述特定节点具体包括以下处理过程。
85.调用集群管理模块30在集群管理器(例如zookeeper 3)中的相应的节点分组中执行节点的下线操作(例如,随机地对相应数目的节点执行下线操作)及删除相应的节点。具体地,执行节点的下线操作,此时节点的服务状态由正常变成下线中(如图4所示),触发存
活状态探测模块20以监测相应的节点的会话并发数:当所述会话并发数不为0时,相应节点的服务状态由正常变化为下线中(如图4所示);当所述会话并发数为0时,相应节点的服务状态由下线中变化为未上线(如图4所示)。
86.步骤s203,通过客户端获取所述更新操作所涉及的特定节点的服务状态。
87.如图3所示,客户端2通过服务订阅模块40订阅zookeeper 3以获取节点的服务状态。其中,所述客户端2可基于连接池60(例如,其可为数据库连接池;更为具体地,其可为事件套接字库(esl)连接池)进行通信。客户端2基于节点的服务状态,执行相应的负载均衡策略模块50及维护连接池,从而实现节点服务的自动发现。
88.步骤s204,基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。
89.下面根据所述特定节点的服务状态,从以下两个方面描述客户端控制通信连接和/或通信请求(例如呼叫请求)。
90.一方面,在所述会话并发数大于并发数阈值的情况下,表明当前节点组无法满足业务需求,根据上述步骤s202部署新的节点(即特定接节点),然后根据监测到的特定节点的服务状态,新建或删除通信连接,具体详见下文描述的两个实施例。
91.在一实施例中,对于步骤s204,所述通过所述客户端控制通信连接和/或通信请求可包括:在所述特定节点的服务状态处于正常的情况下,通过所述客户端建立所述特定节点的通信连接;以及通过所述客户端基于负载均衡策略并经由所述通信连接向所述特定节点发送通信请求。
92.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。首先,当订阅到的特定节点的服务状态为正常时,所述客户端2新建所述特定节点与连接池之间的通信连接,以加入所述连接池。其次,所述客户端2基于负载均衡策略模块50提供的负载均衡策略并经由所建立的通信连接向所述特定节点发送通信请求,以实现节点的负载均衡(即实现每个节点的会话并发数均衡)。
93.在另一实施例中,对于步骤s204,所述通过所述客户端控制通信连接和/或通信请求可包括:在所述特定节点的服务状态处于失联的情况下,通过所述客户端删除所述特定节点的通信连接。
94.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。当订阅到的特定节点的服务状态为失联时,删除所述特定节点与连接池(例如esl连接池)间的连接(例如esl连接)。
95.另一方面,在所述会话并发数小于或等于所述并发数阈值的情况下,表明当前节点组超出业务需求,根据上述步骤s202回收一些节点(即特定接节点),然后根据监测到的特定节点的服务状态,停止发送通信请求或删除通信连接,具体详见下文描述的两个实施例。
96.在一实施例中,对于步骤s204,所述通过所述客户端控制通信连接和/或通信请求可包括:在所述特定节点的服务状态处于下线中的情况下,通过所述客户端停止经由所述通信连接向所述特定节点发送通信请求;以及通过所述客户端删除所述特定节点的通信连接。
97.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。首先,当订阅到的特
定节点的服务状态为下线中时,表明此时所述特定节点无法处理通信请求,所述客户端2停止经由所述通信连接向所述特定节点发送通信请求且删除所述特定节点的通信连接。由所述特定节点所在的节点组中的其他节点执行该特定节点要执行的通信请求,并由服务端1不断探测该特定节点的历史通话的执行情况,当发现所有通话结果,服务端执行其他节点的下线操作。由此,可解决业务请求的平滑下线问题。
98.在另一实施例中,对于步骤s204,所述通过所述客户端控制通信连接和/或通信请求可包括:在所述特定节点的服务状态处于未上线的情况下,通过所述客户端不执行操作。此时,服务端1则不断探测该特定节点的服务状态,当服务状态变更为正常时,由服务端1更新该特定节点的状态为正常。
99.具体地,客户端2通过服务订阅模块40订阅节点的服务状态。当订阅到的特定节点的服务状态为未上线时,表明所述特定节点完成下线操作,所述客户端2删除所述特定节点与连接池(例如esl连接池)间的连接(例如esl连接)。
100.上述描述的过程可实现系统的自动扩容和缩容,并且还支持流量的平滑上线。
101.所述通信控制方法还可包括:在所述节点组中的节点的服务状态处于异常的情况下,通过服务端执行该节点的下线操作;并通过所述客户端获取该节点的服务状态;在所述节点的服务状态处于下线中的情况下,通过所述客户端停止经由所述通信连接向所述节点发送通信请求;以及通过所述客户端删除所述节点的通信连接。
102.当所述节点组出现以下任一项内容时,表明所述节点组的服务状态处于异常:freeswitch服务启动异常,或所述节点组中的任意节点的服务状态异常(例如,机器故障或程序异常等)。freeswitch服务启动异常可为由网络、机器、系统等环境原因造成服务异常(具体地,例如由服务器断电、服务器硬件异常、网络中断等原因造成的服务异常),例如,通过网络连接不到服务器节点。
103.首先,在所述节点组中的节点的服务状态处于异常的情况下,表明该节点不适合用于执行业务请求,此时通过服务端执行该节点的下线操作。由于客户端2通过服务订阅模块40订阅zookeeper 3以获取节点的服务状态,所述客户端2可获取该节点的服务状态。接着,在所述节点的服务状态处于下线中的情况下,表明此时该节点无法处理通信请求,所述客户端2停止经由状态为下线中的节点所建立的通信连接,通过所述客户端2删除该节点的通信连接。服务端1不断探测该下线节点历史通话的执行情况,当发现所有通话结果,让状态变更为下线。由此,可解决业务请求的平滑下线问题。
104.因此,服务端1可对节点组进行管理(包含发布/部署与回收处理),同时监测节点组的服务状态,并将节点的服务状态实时写入zookeeper 3。客户端2订阅zookeeper 3以获取节点的服务状态,并基于节点的服务状态变化,执行相应的负载均衡策略及维护连接池。
105.所述通信控制方法还可包括:通过服务端执行节点的升级与重启操作。所述通过服务端执行特定节点的升级与重启操作包括:调用集群管理模块30执行所述特定节点的下线操作;在所述特定节点的服务状态处于未上线的情况下,调用更新模块10(例如jenkins容器)执行所述特定节点的升级与重启操作;以及在所述特定节点升级重启后,调用集群管理模块30执行所述特定节点的上线操作。
106.具体而言,下面将以图5所示的freeswitch架构为例对通信控制过程进行说明,如图6所示。图5中的网关api集成了客户端软件开发工具包(sdk),网关api通过客户端sdk访
问节点,其中,网关api可通过轮询方式实现针对节点的请求的分发。
107.所述通信控制过程可包括以下步骤s601-s616。
108.步骤s601,客户端2订阅zookeeper 3以获取节点组的服务状态。
109.步骤s602,服务端1监测节点组的服务状态。
110.步骤s603,服务端1判断所述节点组的服务状态是否正常,若是,执行步骤s604;否则执行步骤s615。
111.步骤s604,服务端1统计所述节点组的会话并发数。
112.步骤s605,服务端1判断所述会话并发数是否大于并发数阈值,若是,执行步骤s606;否则执行步骤s610。
113.步骤s606,服务端1部署第一节点。
114.步骤s607,服务端1判断所述第一节点的服务状态处于正常还是失联,若正常,执行步骤s608;否则执行步骤s609。
115.步骤s608,客户端2建立通信连接并发送通信请求。
116.步骤s609,客户端2删除所述第一节点的通信连接。
117.步骤s610,服务端1回收第二节点。
118.步骤s611,服务端1监测所述第二节点的服务状态。
119.步骤s612,服务端1判断所述节点组的服务状态处于下线中还是未上线,若是下线中,执行步骤s613;否则执行步骤s614。
120.步骤s613,客户端2停止向其发送通信请求并删除所述第二节点的通信连接。
121.步骤s614,客户端2不执行操作。
122.步骤s615,服务端1执行所述第三节点的下线操作,并监测第三节点的服务状态。
123.其中,所述第三节点为异常节点。
124.步骤s616,在所述节点的服务状态处于下线中的情况下,客户端2停止经由所述通信连接向所述节点发送通信请求并删除所述节点的通信连接。
125.综上所述,本发明创造性地首先通过服务端监测节点组的服务状态;当所述节点组的服务状态正常时,基于所述节点组的会话并发数执行节点组的更新操作,通过客户端获取所述更新操作所涉及的特定节点的服务状态;最后基于所述特定节点的服务状态,通过所述客户端控制通信连接和/或通信请求。可通过主动监测节点的服务状态来实现自适应性扩容/缩容(即节点的部署/回收),由此,本发明可实现通信过程中的负载均衡,进而提高通信服务的可靠性。
126.本发明一实施例还提供一种服务端,所述服务端用于执行上述的通信控制方法。
127.本发明一实施例还提供一种客户端,所述客户端用于执行上述的通信控制方法。
128.本发明一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的通信控制方法。
129.本发明一实施例还提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述的通信控制方法。
130.本发明一实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述的通信控制方法。
131.以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
132.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
133.本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
134.此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献