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

访问控制方法、服务端及客户端与流程

2022-11-28 13:00:52 来源:中国专利 TAG:


1.本技术涉及一种访问控制方法、服务端及客户端。


背景技术:

2.负载均衡是指对负载(工作任务)进行平衡,将负载分摊到多个节点上执行,从而协同完成工作任务,能够扩展服务器和网络设备的带宽,加强网络数据处理能力、增加吞吐量,并提高网络的可用性和灵活性。
3.常规的服务器负载均衡方案,主要是针对短链接执行负载均衡操作,这些负载均衡方案无法解决长时翻译这类长连接业务场景下的负载均衡问题。当重起或重新部署服务后,该节点下原有的长连接请求会转移到其他节点。其他节点本来就有很多长连接请求,再加上转移过来的长连接请求,就会造成负载很高。而重启后的节点负载很低,需要较长时间才能均衡,造成了服务器资源利用不充分。


技术实现要素:

4.本技术提供了一种访问控制方法、服务端及客户端,本技术实施例采用的技术方案如下:
5.一种访问控制方法,应用于服务端,包括:
6.确定服务端是否满足预设条件;
7.如果所述服务端满足所述预设条件,向客户端发送下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包括所述第一节点的节点标识,所述节点标识用于在所述第一连接断开后所述客户端与所述第一节点重新建立所述第一连接。
8.在一些实施例中,所述在所述服务端满足预设条件的情况下,向客户端发送下线通知,包括:
9.在所述服务端满足预设条件的情况下,通过运行于所述服务端的进程向所述客户端发送下线通知。
10.在一些实施例中,所述在所述服务端满足预设条件的情况下,向客户端发送下线通知,包括:
11.在确定所述服务端异常、运行于所述第一节点的一个或多个进程异常、所述第一节点宕机或所述第一节点即将重启的情况下,向所述客户端发送所述下线通知。
12.在一些实施例中,所述方法还包括:
13.接收所述客户端发送的第一访问请求;其中,所述第一访问请求包含所述节点标识;
14.基于所述第一访问请求,控制所述第一节点与所述客户端重新建立所述第一连接。
15.在一些实施例中,所述接收所述客户端发送的第一访问请求,包括:
16.接收所述客户端基于第一地址信息发送的所述第一访问请求;其中,所述第一地址信息包含第二地址信息和所述节点标识,所述第二地址信息用于所述客户端发送第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。
17.在一些实施例中,所述方法还包括:
18.接收所述客户端发送的第二访问请求,其中,所述第二访问请求未包含所述节点标识;
19.基于负载均衡规则,从所述服务端的多个节点中选取节点与所述客户端构建连接。
20.在一些实施例中,所述基于负载均衡规则,从所述服务端的多个节点中选取节点与所述客户端构建连接,包括:
21.确定多个所述节点的系统空闲率;
22.从多个所述节点中选取系统空闲率最大的节点与所述客户端构建连接。
23.一种访问控制方法,应用于客户端,包括:
24.获得服务端发送的下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包含所述第一节点的节点标识;
25.在所述第一连接断开后,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接。
26.一种服务端,包括:
27.第一确定模块,用于确定服务端是否满足预设条件;
28.第一发送模块,用于在所述服务端满足预设条件的情况下,向客户端发送下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包含所述第一节点的节点标识,所述节点标识用于在所述第一连接断开后所述客户端与所述第一节点重新建立所述第一连接。
29.一种客户端,包括:
30.第二接收模块,用于获得服务端发送的下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包含所述第一节点的节点标识;
31.第二发送模块,用于在所述第一连接断开后,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接。
32.本技术实施例的访问控制方法,通过确定服务端是否满足预设条件,来确定客户端与第一节点之间的第一连接是否已经断开或即将断开,如果所述服务端满足预设条件,则表明客户端与第一节点之间的第一连接已经断开或即将断开,向客户端发送包括第一节点的节点标识的下线通知。如果客户端在预设时间内需要与服务端建立第一连接,则基于所述节点标识向服务端发送访问请求,服务端能够基于节点标识在客户端和第一节点之间重新建立第一连接。如此,能够避免因将第一节点的负载分配到其他节点,导致服务端的各个节点出现负载不均衡的现象,有利于提高服务端的总体性能和稳定性。
附图说明
33.图1为本技术第一种实施例的访问控制方法的流程图;
34.图2为本技术第二种实施例的访问控制方法的流程图;
35.图3为本技术第二种实施例的访问控制方法中步骤s220的流程图;
36.图4为本技术第三种实施例的访问控制方法的流程图;
37.图5为本技术第四种实施例的服务端的结构框图;
38.图6为本技术第五种实施例的客户端的结构框图。
具体实施方式
39.此处参考附图描述本技术的各种方案以及特征。
40.应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本技术的范围和精神内的其他修改。
41.包含在说明书中并构成说明书的一部分的附图示出了本技术的实施例,并且与上面给出的对本技术的大致描述以及下面给出的对实施例的详细描述一起用于解释本技术的原理。
42.通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本技术的这些和其它特性将会变得显而易见。
43.还应当理解,尽管已经参照一些具体实例对本技术进行了描述,但本领域技术人员能够确定地实现本技术的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
44.当结合附图时,鉴于以下详细说明,本技术的上述和其他方面、特征和优势将变得更为显而易见。
45.此后参照附图描述本技术的具体实施例;然而,应当理解,所申请的实施例仅仅是本技术的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本技术模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本技术。
46.本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本技术的相同或不同实施例中的一个或多个。
47.本技术第一种实施例提供了一种访问控制方法,应用于服务端,所述服务端可以是硬件,也可以是软件。当服务端为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
48.图1为本技术第一种实施例的访问控制方法的流程图,参见图1所示,本技术实施例的访问控制方法具体可包括如下步骤。
49.s110,确定服务端是否满足预设条件。
50.可选的,所述服务端可设置多个节点,节点实际即为用于向客户端提供服务的服务节点。服务端获取到访问请求后,通常会将访问请求分发至各个节点,通过节点来响应客
户端访问请求。节点可通过实体设备形成,也可通过例如虚拟机或容器等虚拟设备形成。如果客户端和节点之间在短时间内需要多次传输数据时,则可在客户端和节点时间建立第一连接,也即,长连接。
51.可选的,第一节点可为多个节点中的任意一个节点,如果第一节点与客户端之间建立第一连接,则客户端与第一节点能够基于第一连接多个传输数据。所述预设条件可用于表征所述客户端和所述第一节点之间的第一连接已经断开或即将断开。在具体实施时,该预设条件可包括一个或多个条件,在触发任意一个条件的情况下,均可认为服务端满足预设条件。
52.可选的,可确定服务端是否发生异常,如果确定服务端发生异常,则可确定服务端满足预设条件。例如,可确定服务端的硬件是否发生异常、服务端的软件是否发生异常、服务端的网络连接是否发生异常等等。还例如,在服务端自身设置有用于监控运行状态的监控系统的情况下,确定监控系统是否发出异常报警,在监控系统发出异常报警的情况下,可确定服务端即将发生异常或已经发生异常,并确定服务端满足预设条件。
53.需要说明的是,服务端发生异常即可包括突发的异常行为,也可包括例如定期的运维操作、系统更新等非突发的异常行为。例如,可基于运维计划或管理员指令,确定服务端即将进行系统更新并能够导致第一连接断开,则可确定服务端即将发生异常,进而确定服务端满足预设条件。
54.可选的,也可确定第一节点是否发生异常。可选的,可确定存在如下行为中的一个或多个:运行于所述第一节点的一个或多个进程异常、所述第一节点宕机和所述第一节点即将重启,如果存在上述行为中的一个或多个,则可确定第一节点发生异常,确定服务端满足预设条件。例如,如果确定第一节点中与所述第一连接相关的一个或多个进程运行异常,则可确定服务端满足预设条件。还例如,通过监控系统确定第一节点出现运行故障并宕机,则可确定服务端满足预设条件。又例如,基于管理员指令或运维计划,确定第一节点需要进行系统更新,并且需要重新启动,会导致第一连接断开,则可确定服务端满足预设条件。
55.s120,如果所述服务端满足所述预设条件,向客户端发送下线通知。
56.可选的,所述下线通知包括所述第一节点的节点标识,所述节点标识用于在所述第一连接断开后所述客户端与所述第一节点重新建立所述第一连接。可选的,所述下线通知可用于指示客户端:如果在预设时间内需要与服务端重新建立第一连接,则基于所述节点标识向服务端发送访问请求,以使所述服务端基于所述节点标识在所述客户端和所述第一节点之间重新建立所述第一连接。
57.可选的,节点标识可用于唯一标识第一节点的身份。该节点标识可包括例如节点编号、地址信息、设备编码等各种能够唯一标识第一节点的信息。例如,第一节点的节点编码可为“a001”,则在确定服务端满足预设条件的情况下,可将“a001”作为节点标识发送至客户端。
58.本技术实施例的访问控制方法,通过确定服务端是否满足预设条件,来确定客户端与第一节点之间的第一连接是否已经断开或即将断开,如果所述服务端满足预设条件,则表明客户端与第一节点之间的第一连接已经断开或即将断开,向客户端发送包括第一节点的节点标识的下线通知。如果客户端在预设时间内需要与服务端建立第一连接,则基于所述节点标识向服务端发送访问请求,服务端能够基于节点标识在客户端和第一节点之间
重新建立第一连接。如此,能够避免因将第一节点的负载分配到其他节点,导致服务端的各个节点出现负载不均衡的现象,有利于提高服务端的总体性能和稳定性。
59.在一些实施例中,步骤120,在所述服务端满足预设条件的情况下,向客户端发送下线通知,具体可包括如下步骤。
60.在所述服务端满足预设条件的情况下,通过运行于所述服务端的进程向所述客户端发送下线通知。
61.可选的,可在服务端运行例如守护进程来监控服务端整体运行状态,或者监控一个或多个节点的运行状态。在未触发预设条件的情况下,守护进程通常处于后台运行状态。在服务端满足预设条件的情况系,可通过守护进程向客户端发送下线通知。这样,可以在尽量避免影响服务端正常运行的情况下,实现本技术实施例的访问控制方法。
62.可选的,该进程可运行在例如服务端的负载均衡模块上,也可运行在各个节点上。例如,可在负载均衡模块上运行守护进程对各个节点进行同一监控。也可在各个节点启动时,分别在各个节点上运行守护进程,以通过节点自身的守护进程对节点自身的运行状态进行监控。
63.在一些实施例中,所述方法还包括如下步骤。
64.s130,接收所述客户端发送的第一访问请求;其中,所述第一访问请求包含所述节点标识。
65.s140,基于所述第一访问请求,控制所述第一节点与所述客户端重新建立所述第一连接。
66.可选的,下线通知可用于指示客户端将访问模式从常规访问模式切换至下线重连模式,并在预设时间内保持下线重连模式。在常规访问模式下,客户端可发送不包含节点标识的访问请求,服务端在接收到访问请求的情况下,基于预设规则选取节点响应客户端的访问请求。在下线重连模式下,客户端如果需要服务端建立第一连接,则基于向服务端发送包含节点标识的第一访问请求。服务端接收到第一访问请求,如果识别到第一访问请求中包含节点标识,则基于节点标识调取相应对第一节点,并控制第一节点与客户端重新建立第一连接。为客户端和第一节点重新建立长连接提供了一种可行的实施方式,使得长连接断开后,客户端能够顺利的与原本与之连接的第一节点重新建立长连接,避免将第一节点上的负载分配到其他节点,进而避免服务端出现负载不均衡的现象。
67.在一些实施例中,步骤s130,接收所述客户端发送的第一访问请求,可包括如下步骤。
68.接收所述客户端基于第一地址信息发送的所述第一访问请求;其中,所述第一地址信息包含第二地址信息和所述节点标识,所述第二地址信息用于所述客户端发送第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。
69.可选的,在常规访问模式下,客户端可基于第二地址信息向服务端发送第二访问请求,请求服务端提供服务。服务端接收到第二访问请求的情况下,基于负载均衡规则,从服务端的多个节点中选取节点与客户端建立连接。该第二地址信息可包括例如url地址、ip地址、端口号等能够唯一标识服务端和服务类型的地址信息。
70.可选的,在下线重连模式下,客户端可基于第二地址信息和节点标识组合形成所
述第一地址信息。以该第二地址信息为url地址为例,可将节点标识添加在url地址的前方、中间或后方,以形成第一地址信息。基于该第一地址信息,就能够向服务端发送第一访问请求。例如,第二地址信息可为“https://www.abcd.com/event”,节点标识可为“a001”,第一地址信息可为“https://www.abcd.com/event/a001”。该方法不需要修改协议,操作简单,易于实现。
71.在一些实施例中,所述方法还可包括如下步骤。
72.s150,接收所述客户端发送的第二访问请求,其中,所述第二访问请求未包含所述节点标识。
73.s160,基于负载均衡规则,从所述服务端的多个节点中选取节点与所述客户端构建连接。
74.可选的,常规状态下,客户端可配置为处于常规访问模式,在客户端首次访问服务端时,客户端可基于第二地址信息向服务端发送不包含节点标识的第二访问请求。例如,客户端可直接基于“https://www.abcd.com/event”这个url地址访问服务端。或者,在客户端在切换至下线重连模式之后,如果客户端在预设时间之内未访问服务端,或未请求服务端预置建立长连接,则客户端可自动将访问模式切换回常规访问模式。之后,如果客户端请求访问服务端,可基于第二地址信息向服务端发送第二访问请求。
75.可选的,服务端在接收到第二访问请求后,如果在第二访问请求中未识别到节点标识,则可基于负载均衡规则,从多个节点中选取节点与客户端构建连接。例如,服务端可设置有负载均衡模块,负载均衡模块可用于进行负载分配。服务端接收到访问请求后,通过负载均衡模块检测访问请求中是否包含预设格式的节点标识,如果访问请求中包含节点标识,则基于节点标识控制相应的节点与客户端重新构建连接,如果访问请求中不包含节点标识,则基于负载均衡规则从多个节点重选取节点,来响应客户端的访问请求,为客户端提供服务。
76.在一些实施例中,步骤s160,基于负载均衡规则,从所述服务端的多个节点中选取节点与所述客户端构建连接,可包括如下步骤。
77.s161,确定多个所述节点的系统空闲率。
78.s162,从多个所述节点中选取系统空闲率最大的节点与所述客户端构建连接。
79.可选的,系统空闲率用于表征节点空闲处理能力。该系统空闲率可包括处理器的空闲使用率或内存的空闲率,该系统空闲率也可包括节点的连接数量上限值和当前连接数量之间的差值与节点的连接数量上限值的比值,或者,该系统空闲率也卡包括节点的进程数上限值和当前进程数之间的差值与节点的进程数上限值的比值。
80.可选的,可通过负载均衡模块侦测各个节点的系统空闲率。例如,负载均衡模块可定期对各个节点进行轮询。还例如,负载均衡模块为各个节点分配访问请求时,可记录各个节点的连接数量,并以此确定各个节点的系统空闲率。
81.可选的,在已确定各个节点的系统空闲率的情况下,仍然可通过负载均衡模块从中选取系统空闲率最大的节点与客户端构建连接,以实现服务端的负载均衡。例如,负载均衡模块基于系统空闲率从大到小的顺序对节点进行排序,选取排序中靠前的一个或多个节点与客户端构建连接。如此,能够实现较好的负载均衡效果。
82.本技术第二种实施例还提供了一种访问控制方法,应用于客户端,该客户端可以
是硬件,也可以是软件。当客户端为硬件时,可以是各种能够与服务端建立长连接的电子设备,包括但不限于智能手机、平板电脑和台式计算机等等。当客户端为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
83.图2为本技术第二种实施例的访问控制方法的流程图,参见图2所示,本技术第二种实施例的访问控制方法具体可包括如下步骤。
84.s210,获得服务端发送的下线通知。其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据。所述下线通知包含所述第一节点的节点标识。
85.可选的,所述服务端可设置多个节点,节点实际即为用于向客户端提供服务的服务节点。服务端获取到访问请求后,通常会将访问请求分发至各个节点,通过节点来响应客户端访问请求。节点可通过实体设备形成,也可通过例如虚拟机或容器等虚拟设备形成。如果客户端和节点之间在短时间内需要多次传输数据时,则可在客户端和节点时间建立第一连接,也即,长连接。第一节点可为多个节点中的任意一个节点,如果第一节点与客户端之间建立第一连接,则客户端与第一节点能够基于第一连接多个传输数据。
86.可选的,服务端可在确定自身符合预设条件时,向客户端发送下线通知。所述预设条件可用于表征所述客户端和所述第一节点之间的第一连接已经断开或即将断开。可选的,所述下线通知可用于指示客户端:如果在预设时间内需要与服务端重新建立第一连接,则基于所述节点标识向服务端发送访问请求,以使所述服务端基于所述节点标识在所述客户端和所述第一节点之间重新建立所述第一连接。
87.可选的,节点标识可用于唯一标识第一节点的身份。该节点标识可包括例如节点编号、地址信息、设备编码等各种能够唯一标识第一节点的信息。例如,第一节点的节点编码可为“a001”,则在确定服务端满足预设条件的情况下,可将“a001”作为节点标识发送至客户端。
88.s220,在所述第一连接断开后,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接。
89.可选的,客户端获取到下线通知,如果在预设时间内需要与服务端重新构建第一连接,可基于下线通知中的节点标识向服务端发送第一访问请求。第一访问请求中可包含节点标识,以告知服务端在第一连接断开前,与客户端建立第一连接的节点身份。
90.可选的,服务端接收到第一访问请求,如果识别到第一访问请求中包含节点标识,则基于节点标识调取相应对第一节点,并控制第一节点与客户端重新建立第一连接。
91.本技术实施例的访问控制方法,客户端可与服务端中第一节点建立第一连接,如果第一连接已经断开或即将断开,客户端能够获取到服务端发送的下线通知,下线通知中包含第一节点的节点标识。在第一连接断开后,如果客户端需要与服务端重新建立第一连接,则可向服务端发送包含节点标识的第一访问请求,使服务端能够基于节点标识控制第一节点与客户端重新建立第一连接。如此,能够避免因将第一节点的负载分配到其他节点,导致服务端的各个节点出现负载不均衡的现象,有利于提高服务端的总体性能和稳定性。
92.配合图3所示,在一些实施例中,步骤s220,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接,可包括如下步骤。
93.基于所述下线通知,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至下线重连模式。
94.在所述下线重连模式下,基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。
95.可选的,下线通知可用于指示客户端将访问模式从常规访问模式切换至下线重连模式,并在预设时间内保持下线重连模式。在常规访问模式下,客户端可发送不包含节点标识的访问请求,服务端在接收到访问请求的情况下,基于预设规则选取节点响应客户端的访问请求。在下线重连模式下,客户端如果需要服务端建立第一连接,则基于向服务端发送包含节点标识的第一访问请求。服务端接收到第一访问请求,如果识别到第一访问请求中包含节点标识,则基于节点标识调取相应对第一节点,并控制第一节点与客户端重新建立第一连接。为客户端和第一节点重新建立长连接提供了一种可行的实施方式,使得长连接断开后,客户端能够顺利的与原本与之连接的第一节点重新建立长连接,避免将第一节点上的负载分配到其他节点,进而避免服务端出现负载不均衡的现象。
96.配合图3所示,在一些实施例中,在所述下线重连模式下,基于所述节点标识向所述服务端发送第一访问请求,以请求与重启后的所述第一节点重新构建长连接,可包括如下步骤。
97.在所述下线重连模式下,确定是否需要与服务端重新构建第一连接。
98.如果是,则基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。
99.可选的,客户端可基于当前执行的操作判断是否需要与服务端重新建立第一连接。例如,基于客户端当前的业务类型,确定是否需要基于长连接与服务端交互数据,如果是,则确定需要与服务端重新构建第一连接,如果否,则确定不需要与服务端重新构建第一连接。
100.可选的,客户端也可基于历史记录确定在接收到下线通知之后,是否已向服务端发送第一访问请求,如果是,则确定不需要向服务端重复发送第一访问请求,如果否,则确定需要与服务端重新建立第一连接,需要向服务端发送第一访问请求。
101.在一些实施例中,步骤s220,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接,可包括如下步骤。
102.基于所述节点标识和第二地址信息生成第一地址信息;其中,所述第二地址信息用于发送第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。
103.基于所述第一地址信息,向所述服务端发送包含所述节点标识的所述第一访问请求。
104.可选的,在常规访问模式下,客户端可基于第二地址信息向服务端发送第二访问请求,请求服务端提供服务。服务端接收到第二访问请求的情况下,基于负载均衡规则,从服务端的多个节点中选取节点与客户端建立连接。该第二地址信息可包括例如url地址、ip地址、端口号等能够唯一标识服务端和服务类型的地址信息。
105.可选的,在下线重连模式下,客户端可基于第二地址信息和节点标识组合形成所述第一地址信息。以该第二地址信息为url地址为例,可将节点标识添加在url地址的前方、
中间或后方,以形成第一地址信息。基于该第一地址信息,就能够向服务端发送第一访问请求。例如,第二地址信息可为“https://www.abcd.com/event”,节点标识可为“a001”,第一地址信息可为“https://www.abcd.com/event/a001”。该方法不需要修改协议,操作简单,易于实现。
106.在一些实施例中,所述方法还可包括如下步骤。
107.s230,在所述客户端与重启后的所述第一节点重新构建完成长连接的情况下,或者,在获取到所述下线通知的预设时间之后,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至常规访问模式。
108.其中,在所述常规访问模式下,所述客户端能够向所述服务端发送不包含节点标识的第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。
109.可选的,常规状态下,客户端可配置为处于常规访问模式,在客户端首次访问服务端时,客户端可基于第二地址信息向服务端发送不包含节点标识的第二访问请求。例如,客户端可直接基于“https://www.abcd.com/event”这个url地址访问服务端。或者,在客户端在切换至下线重连模式之后,如果客户端在预设时间之内未访问服务端,或未请求服务端预置建立长连接,则客户端可自动将访问模式切换回常规访问模式。之后,如果客户端请求访问服务端,可基于第二地址信息向服务端发送第二访问请求。
110.可选的,服务端在接收到第二访问请求后,如果在第二访问请求中未识别到节点标识,则可基于负载均衡规则,从多个节点中选取节点与客户端构建连接。例如,服务端可设置有负载均衡模块,负载均衡模块可用于进行负载分配。服务端接收到访问请求后,通过负载均衡模块检测访问请求中是否包含预设格式的节点标识,如果访问请求中包含节点标识,则基于节点标识控制相应的节点与客户端重新构建连接,如果访问请求中不包含节点标识,则基于负载均衡规则从多个节点重选取节点,来响应客户端的访问请求,为客户端提供服务。
111.参见图4所示,本技术第三种实施例还提供了了一种访问控制方法,应用于客户端和服务端,本技术第三种实施例的访问控制方法具体可包括如下步骤。
112.s301,客户端基于第二地址信息,向服务端发送第二访问请求,其中,所述第二访问请求中未包含用于标识服务端的节点的节点信息。
113.可选的,客户端可具有常规访问模式和下线重连模式两种访问模式,客户端可默认处于常规访问模式下。在所述常规访问模式下,所述客户端能够基于第二地址信息向所述服务端发送不包含节点标识的第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。例如,客户端可直接基于“https://www.abcd.com/event”这个url地址访问服务端。
114.s302,服务端基于负载均衡规则,从多个节点中选取第一节点与所述客户端构建第一连接。其中,所述客户端与所述第一节点能够通过所述第一连接多次传输数据。
115.可选的,服务端在接收到第二访问请求后,如果在第二访问请求中未识别到节点标识,则可基于负载均衡规则,从多个节点中选取节点与客户端构建连接。例如,服务端可设置有负载均衡模块,负载均衡模块可用于进行负载分配。服务端接收到访问请求后,通过负载均衡模块检测访问请求中是否包含预设格式的节点标识,如果访问请求中包含节点标
识,则基于节点标识控制相应的节点与客户端重新构建连接,如果访问请求中不包含节点标识,则基于负载均衡规则从多个节点重选取节点,来响应客户端的访问请求,为客户端提供服务。
116.s303,服务端确定自身是否满足预设条件。
117.可选的,所述预设条件可用于表征所述客户端和所述第一节点之间的第一连接已经断开或即将断开。在具体实施时,该预设条件可包括一个或多个条件,在触发任意一个条件的情况下,均可认为服务端满足预设条件。
118.可选的,可确定服务端是否发生异常,如果确定服务端发生异常,则可确定服务端满足预设条件。例如,可确定服务端的硬件是否发生异常、服务端的软件是否发生异常、服务端的网络连接是否发生异常等等。还例如,在服务端自身设置有监控系统的情况下,确定监控系统是否发出异常报警,在监控系统发出异常报警的情况下,可确定服务端即将发生异常或已经发生异常,并确定服务端满足预设条件。
119.需要说明的是,服务端发生异常即可包括突发的异常行为,也可包括例如定期的运维操作、系统更新等非突发的异常行为。例如,可基于运维计划或管理员指令,确定服务端即将进行系统更新并能够导致第一连接断开,则可确定服务端即将发生异常,进而确定服务端满足预设条件。
120.可选的,也可确定第一节点是否发生异常。可选的,可确定存在如下行为中的一个或多个:运行于所述第一节点的一个或多个进程异常、所述第一节点宕机和所述第一节点即将重启,如果存在上述行为中的一个或多个,则可确定第一节点发生异常,确定服务端满足预设条件。例如,如果确定第一节点中与所述第一连接相关的一个或多个进程运行异常,则可确定服务端满足预设条件。还例如,通过监控系统确定第一节点出现运行故障并宕机,则可确定服务端满足预设条件。又例如,基于管理员指令或运维计划,确定第一节点需要进行系统更新,并且需要重新启动,会导致第一连接断开,则可确定服务端满足预设条件。
121.s304,如果所述服务端确定自身满足所述预设条件,向客户端发送下线通知;其中,所述下线通知包括所述第一节点的节点标识。
122.可选的,所述下线通知包括所述第一节点的节点标识,所述节点标识用于在所述第一连接断开后所述客户端与所述第一节点重新建立所述第一连接。可选的,所述下线通知可用于指示客户端:如果在预设时间内需要与服务端重新建立第一连接,则基于所述节点标识向服务端发送访问请求,以使所述服务端基于所述节点标识在所述客户端和所述第一节点之间重新建立所述第一连接。
123.可选的,节点标识可用于唯一标识第一节点的身份。该节点标识可包括例如节点编号、地址信息、设备编码等各种能够唯一标识第一节点的信息。例如,第一节点的节点编码可为“a001”,则在确定服务端满足预设条件的情况下,可将“a001”作为节点标识发送至客户端。
124.s305,客户端基于所述下线通知,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至下线重连模式。
125.可选的,下线通知可用于指示客户端将访问模式从常规访问模式切换至下线重连模式,并在预设时间内保持下线重连模式。在常规访问模式下,客户端可发送不包含节点标识的访问请求,服务端在接收到访问请求的情况下,基于预设规则选取节点响应客户端的
访问请求。在下线重连模式下,客户端如果需要服务端建立第一连接,则基于向服务端发送包含节点标识的第一访问请求。
126.s306,客户端在所述下线重连模式下,基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。
127.可选的,客户端在所述下线重连模式下,可确定是否需要与服务端重新构建第一连接。如果是,则基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。例如,客户端可基于当前执行的操作判断是否需要与服务端重新建立第一连接。如基于客户端当前的业务类型,确定是否需要基于长连接与服务端交互数据,如果是,则确定需要与服务端重新构建第一连接,如果否,则确定不需要与服务端重新构建第一连接。还例如,客户端也可基于历史记录确定在接收到下线通知之后,是否已向服务端发送第一访问请求,如果是,则确定不需要向服务端重复发送第一访问请求,如果否,则确定需要与服务端重新建立第一连接,需要向服务端发送第一访问请求。
128.s307,服务端基于所述第一访问请求,控制所述第一节点与所述客户端重新建立所述第一连接。
129.可选的,服务端接收到第一访问请求,如果识别到第一访问请求中包含节点标识,则基于节点标识调取相应对第一节点,并控制第一节点与客户端重新建立第一连接。
130.s308,在所述客户端与重启后的所述第一节点重新构建完成长连接的情况下,或者,在获取到所述下线通知的预设时间之后,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至常规访问模式。
131.本技术实施例的访问控制方法,客户端可与服务端中第一节点建立第一连接,如果第一连接已经断开或即将断开,客户端能够获取到服务端发送的下线通知,下线通知中包含第一节点的节点标识。在第一连接断开后,如果客户端需要与服务端重新建立第一连接,则可向服务端发送包含节点标识的第一访问请求,使服务端能够基于节点标识控制第一节点与客户端重新建立第一连接。如此,能够避免因将第一节点的负载分配到其他节点,导致服务端的各个节点出现负载不均衡的现象,有利于提高服务端的总体性能和稳定性。
132.参见图5所示,本技术第四种实施例提供了一种服务端,包括:
133.第一确定模块401,用于确定服务端是否满足预设条件;
134.第一发送模块402,用于在所述服务端满足预设条件的情况下,向客户端发送下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包含所述第一节点的节点标识,所述节点标识用于在所述第一连接断开后所述客户端与所述第一节点重新建立所述第一连接。
135.在一些实施例中,所述第一发送模块402具体用于:
136.在所述服务端满足预设条件的情况下,通过运行于所述服务端的进程向所述客户端发送下线通知。
137.在一些实施例中,所述第一发送模块402具体用于:
138.在确定所述服务端异常、运行于所述第一节点的一个或多个进程异常、所述第一节点宕机或所述第一节点即将重启的情况下,向所述客户端发送所述下线通知。
139.在一些实施例中,所述服务端还包括:
140.第一接收模块,用于接收所述客户端发送的第一访问请求;其中,所述第一访问请求包含所述节点标识;
141.负载均衡模块,用于基于所述第一访问请求,控制所述第一节点与所述客户端重新建立所述第一连接。
142.在一些实施例中,所述第一接收模块具体用于:
143.接收所述客户端基于第一地址信息发送的所述第一访问请求;其中,所述第一地址信息包含第二地址信息和所述节点标识,所述第二地址信息用于所述客户端发送第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接。
144.在一些实施例中,所述服务端还包括:
145.第一接收模块,用于接收所述客户端发送的第二访问请求,其中,所述第二访问请求未包含所述节点标识;
146.负载均衡模块,用于基于负载均衡规则,从所述服务端的多个节点中选取节点与所述客户端构建连接。
147.在一些实施例中,所述负载均衡模块具体用于:
148.确定多个所述节点的系统空闲率;
149.从多个所述节点中选取系统空闲率最大的节点与所述客户端构建连接。
150.参见图6所示,本技术第五种实施例提供了一种客户端,包括:
151.第二接收模块501,用于获得服务端发送的下线通知;其中,所述客户端与所述服务端的第一节点之间建立第一连接,且所述客户端与所述第一节点能够通过所述第一连接多次传输数据;所述下线通知包含所述第一节点的节点标识;
152.第二发送模块502,用于在所述第一连接断开后,向所述服务端发送包含所述节点标识的第一访问请求,以请求与所述第一节点重新建立所述第一连接。
153.在一些实施例中,所述第二发送模块502具体用于:
154.基于所述下线通知,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至下线重连模式;
155.在所述下线重连模式下,基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。
156.在一些实施例中,所述第二发送模块502具体用于:
157.在所述下线重连模式下,确定是否需要与服务端重新构建第一连接;
158.如果是,则基于所述节点标识向所述服务端发送第一访问请求,以请求与所述第一节点重新构建第一连接。
159.在一些实施例中,所述第二发送模块502具体用于:
160.基于所述节点标识和第二地址信息生成第一地址信息;其中,所述第二地址信息用于发送第二访问请求,所述第二访问请求用于请求所述服务端基于负载均衡规则选取节点与所述客户端构建连接;
161.基于所述第一地址信息,向所述服务端发送包含所述节点标识的所述第一访问请求。
162.在一些实施例中,所述第二发送模块502还用于:
163.在所述客户端与重启后的所述第一节点重新构建完成长连接的情况下,或者,在获取到所述下线通知的预设时间之后,修改所述客户端自身的状态信息,以将所述客户端的访问模式切换至常规访问模式。
164.以上实施例仅为本技术的示例性实施例,不用于限制本技术,本技术的保护范围由权利要求书限定。本领域技术人员可以在本技术的实质和保护范围内,对本技术做出各种修改或等同替换,这种修改或等同替换也应视为落在本技术的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献