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

长连接服务的连接方法、装置、电子设备以及存储介质与流程

2022-10-26 13:38:53 来源:中国专利 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.连接模块,被配置为按照所述目标节点其调整后的连接数量,控制所述目标节点的长连接服务的连接。
34.作为一种可能的实施方式,所述协调模块被配置为获取所述服务端中每个节点的当前累计连接数量;根据所有节点的当前累计连接数量,确定所述目标节点的当前连接数量。
35.作为一种可能的实施方式,所述协调模块进一步被配置为获取所述服务端中每个节点的负载能力;
36.根据所有节点的负载能力以及当前累计连接数量,确定所述目标节点的当前连接数量;
37.其中,所述负载能力是根据所述服务端的全局配置确定的。
38.作为一种可能的实施方式,所述记录模块,被配置为响应于当前建立的长连接服
务的连接,为当前所建立的长连接服务所连接的节点,存储其所述当前建立的长连接服务的连接信息,或者,存储该节点当前累计连接数量。
39.作为一种可能的实施方式,所述协调模块被配置为对于每个节点,根据该节点当前所存储的连接信息,统计该节点的当前累计连接数量。
40.作为一种可能的实施方式,该装置进一步包括:
41.触发模块,被配置为在满足设定条件的情况下,触发所述协调模块进行连接数量的调整。
42.作为一种可能的实施方式,触发模块被配置为对于每个节点,判断该节点当前累计连接数量是否大于设定的连接数量阈值,在该节点当前累计连接数量大于所述连接数量阈值的情况下,确定该节点为所述目标节点,触发所述协调模块调整所述目标节点的连接数量;
43.其中,所述连接数量阈值是根据所述服务端的全局配置确定的,所述服务端中不同的节点具有不同的连接数量阈值。
44.作为一种可能的实施方式,所述连接模块被配置为在所述目标节点的当前累计连接数量大于所述调整后的连接数量的情况下,断开所述目标节点的至少一个当前长连接服务,并删除所断开长连接服务其连接状况记录;
45.在所述目标节点的当前累计连接数量小于所述调整后的连接数量的情况下,建立至少一个下一长连接服务的连接;
46.其中,
47.所断开长连接服务的数量、所建立的下一长连接服务的数量取决于当前累计连接数量与所述调整后的连接数量之间的差值。
48.根据本技术公开实施例的第三方面,提供一种电子设备,包括:
49.处理器;
50.用于存储所述处理器的可执行指令的存储器;
51.其中,所述处理器被配置为执行所述可执行指令,以实现任一所述长连接服务的连接方法。
52.根据本技术公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的至少一条指令被电子设备的处理器执行时,使得所述电子设备能够实现上述任一实施方式所述长连接服务的连接方法。
53.根据本技术公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述所述长连接服务的连接方法。
54.本技术公开的实施例提供的技术方案至少带来以下有益效果:
55.本技术通过记录所述当前长连接服务所连接节点的当前连接状况,实现了网络连接的动态感知,通过根据所述服务端中每个节点所记录的当前连接状况,调整所述服务端中至少一个节点的连接数量,实现了网络连接数量的动态调整,有利于达到系统全局的网络连接平衡,提高长连接服务的可用性,从而有利于提高业务连接热点的可靠性。
56.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术公开。
附图说明
57.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术公开的实施例,并与说明书一起用于解释本技术公开的原理,并不构成对本技术公开的不当限定。
58.图1是根据一示例性实施例示出的长连接服务的连接方法的一种流程示意图;
59.图2为业务系统的一种示意图;
60.图3是根据一示例性实施例示出的长连接服务的连接方法的一种流程示意图;
61.图4是根据一示例性实施例示出的长连接服务的连接装置的一种示意图;
62.图5是根据一示例性实施例示出的电子设备的一种示意图。
具体实施方式
63.为了使本领域普通人员更好地理解本技术公开的技术方案,下面将结合附图,对本技术公开实施例中的技术方案进行清楚、完整地描述。
64.需要说明的是,本技术公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术公开的一些方面相一致的装置和方法的例子。
65.现有的保障长连接服务的可用性的方式是:
66.基于终端设备的访问日志所记录的历史连接信息、按照设定时间信息进行统计,得到目标时间信息内所保持的历史连接数量,
67.将通过系统配置的目标连接数量与目标时间信息内所保持的历史连接数量进行对比分析,得到对应于所述目标时间信息内的动态连接数量阈值,
68.根据所述动态连接数量阈值,调整当前时间信息内长连接服务的连接数量,若当前时间信息内长连接服务的连接数量大于所述动态连接数量阈值,则触发数据流量控制或报警,其中,当前时间信息内长连接服务的连接数量是基于所述访问日志所记录的连接信息、按照当前时间进行统计而得到,时间信息包括时间段信息或时间戳信息。
69.申请人研究发现,通过终端设备的访问日志所记录的历史连接信息按照指定时间信息而进行统计,并根据所述统计结果来动态调节当前长连接服务的连接数量的方式,在每个长连接服务的有效载荷(payload)一定的情况下,只有在指定时间信息内才能够触发连接数量的调整,这导致长连接数量的调整不具有实时性。
70.有鉴于此,本技术提供一种长连接服务的连接方法,可实现长连接服务其连接数量的自适应调整。
71.参见图1所示,图1是根据一示例性实施例示出的长连接服务的连接方法的一种流程示意图。该方法应用于服务端侧,包括:
72.步骤101,记录服务端包含的节点所连接的长连接服务的当前连接状况,并建立节点与当前连接状况的对应关系;在该步骤中,长连接服务是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要连接的双方发送链路检测包。长连接服务多用于操作频繁、点对点的通讯,而且同时连接的数量不太多情况,包括且不限
于,手机推送,数据库连接、直播业务等。这是因为每个传输控制协议(tcp)连接都需要三步握手,如果每个操作都是短连接,那么处理速度会降低很多,所以,在长连接的情况下,每个操作完成之后都不断开,下次操作时直接发送数据包就可以了,不用建立tcp连接。
73.节点是具有提供长连接服务连接能力的功能实体,相对于所连接终端的逻辑功能而言,节点属于服务端实体;从形态而言,节点可以是分布式的网络设备,例如,集群系统中的一集群设备,或者位于集群设备中的功能实体,也可以是可以包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一项。还可以是可提供长连接服务连接的终端设备,例如,连接于网格网络中的终端设备,所应理解的是,从提供长连接服务连接的功能逻辑而言,该终端设备就如同服务端的网络设备一样。无论是何种形态的设备或功能实体,能够为请求方提供长连接服务连接的功能实体都可以理解为服务端包含的节点。
74.连接状况用于表征节点所提供长连接服务的能力,可以包括连接数量、连接信息例如连接标识(id)、连接时长、连接频次、连接时所传输的有效载荷、服务质量(qos)等信息,所应理解的是,连接状况不限于上述信息,任何可用于表征节点所提供长连接服务能力的参数指标均可。当前连接状况可理解为与记录时间最近时间内节点所提供长连接服务的能力,所应理解的是,当前连接状况并不拘泥于记录时间,其旨意在于表示具有实时性的连接状况。
75.以连接数量为例,连接数量用于表征设定时刻例如设定时间戳所统计的长连接服务连接的个数,可以包括节点当前建立的长连接服务连接的连接数量,还可以包括节点已建立的长连接服务连接且当前仍保持连接的连接数量,为减少对存储资源的占用,可以不包括节点曾建立的长连接服务且当前已断开连接的连接数量。累计的连接数量用于表征设定时间段内所统计的长连接服务连接的个数,相当于多个的连接数量的累加。
76.在采用长连接服务的连接信息来描述连接状况的情况下,可以通过统计设定时刻不同连接信息的数量来确定连接数量,通过统计设定时间段内的不同连接信息数量来确定累计的连接数量,同样地,连接信息可以包括节点当前建立的长连接服务连接的连接信息,也可以包括节点已建立的长连接服务连接且当前仍保持连接的连接信息,为减少对存储资源的占用,可以不包括节点曾建立的长连接服务且当前已断开连接的连接信息。
77.一种实施方式是,当终端向服务端发起长连接服务的连接请求时,服务端响应于当前长连接服务的连接,并记录当前长连接服务所连接节点的当前连接状况,
78.在该实施方式中,终端是发起长连接服务的一种请求方,终端的设备类型可以包括:智能手机、平板电脑、电子书阅读器、mp3(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)播放器、mp4(moving picture experts group audio layeriv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机或者台式计算机中的至少一种。例如,该任一终端可以是智能手机,或者其他手持便携式电子设备。以下实施例,以终端包括智能手机来举例说明。
79.本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本公开实施例对终端的数量和设备类型不加以限定。
80.以内容推送为例,一手机终端a通过设置超文本传输协议(http)的连接头connection header,向一目的ip地址发起用于建立长连接服务的连接请求,目的ip地址所
在节点b响应于该连接请求,与手机终端建立长连接服务的连接,并记录节点b本身的当前连接状况c,这样,在连接状况记录的是当前建立的长连接服务连接的情形下,每建立一长连接服务连接都会使得该节点b的连接状况数据得以增加,在连接状况记录的还包括已建立的长连接服务连接且当前仍保持连接的情形下,每建立一长连接服务的连接节点,便使得连接状况可以以新建立的长连接服务的连接为时机而被更新,由此,有利于提高提供长连接服务的节点其本身连接状况的实时性和准确性。
81.所记录的连接状况可存储于节点本身,也可予以上报。为了更好地协调各个节点的负载以便负载均衡,在本实施例中,节点将所记录的连接状况上报至服务端。其中,节点可以在当前长连接服务连接的建立完成后上报当前连接状况,也就是基于长连接服务连接的连接事件上报当前连接状况;也可以按照设定时间上报当前连接状况,例如,周期性地上报当前连接状况;可以是基于节点与服务端之间连接状况的信息交互协议来上报当前连接状况,例如,服务端向节点发送当前连接状况上报指示,节点响应于该上报指示,上报当前连接状况;又可以是在节点处于空闲状态下上报,这里,空闲状态由节点按照其处理器的繁忙程度确定。
82.仍以节点b为例,节点b在当前长连接服务连接的建立完成后便上报当前连接状况c,这样有利于提高实时性;也可以每隔设定的周期时间上报当前连接状况,还可以响应于来自服务端的上报指示,上报当前连接状况,或者,检测到节点处于空闲状态时,则上报当前连接状况,所应理解的是,后三种上报方式上报有可能不仅包括连接状况c,还可以上报连接状况c之后的连接状况,这样,服务端同样可以获得节点c本身其具有实时性的连接状况。
83.作为一种示例,服务端接收当前节点上报的连接状况,并存储当前节点上报的连接状况,鉴于服务端侧节点数量较多、连接状况的信息量较大,建立节点与当前连接状况的对应关系,以便于服务端对各个节点进行管理,其中,对应关系中各个节点之间可以采用节点标识信息来予以区分,例如,以节点的ip地址信息为标识信息。
84.步骤102,根据当前连接状况,从服务端包含的节点中获取至少一个目标节点,并基于当前连接状况,获取目标节点调整后的连接数量,
85.在该步骤中,目标节点是用于对其所提供的长连接服务连接进行调整的节点;目标节点的数量可以是一个,也可以是多个,并且数量可以是动态变化的,例如,本次获取的目标节点数量为第一数量,下次获取的目标节点数量为第二数量,第一数量和第二数量不同,目标节点数量的多少可以根据业务需求、网络状况、流量控制、qos等因素来确定。
86.每个目标节点可以具有不同的属性,例如,目标节点具有较高qos能力,或者,目标节点具有较优的流量控制,或者,目标节点承载特定业务等,这也为目标节点的选取提供了选取策略。
87.作为示例,目标节点的选取可以根据当前连接状况结合业务类型来选取,例如,在当前连接状况相同或相近的情形下,优先选取承载qos要求低于设定阈值的业务的节点作为目标节点,这样,避免选取承载qos要求不低于设定阈值的业务的节点来作为目标节点,从而有利于提高承载qos要求不低于设定阈值的业务的节点的长连接服务连接的可靠性,又例如,优先选取承载消息业务的节点作为目标节点,而不优先选取承载内容业务的节点作为目标节点,在节点所承载业务类型不明确的情况下,可以结合业务类型的比重情况来
选取目标节点,例如,如果节点所承载消息业务的比重大于设定的比重阈值,则说明该节点所承载的消息业务较大,故而可以优先将该节点作为目标节点;
88.目标节点的选取可以根据当前连接状况结合通信类型来选取,例如,在当前连接状况相同或相近的情形下,优先选取承载非实时通信的节点作为目标节点,不优先选取承载实时通信的节点作为目标节点;
89.目标节点的选取还可以根据当前连接状况结合负载能力来选取,例如,在当前连接状况相同或相近的情形下,优先选取负载能力小于设定负载阈值的节点作为目标节点,以避免节点因负载能力不足而导致长连接服务连接的可靠性降低;
90.目标节点的选取又可以根据当前连接状况结合长连接服务连接的当前节点来选取,例如,当节点响应于当前长连接服务连接并上报连接状况后,优先将该节点作为目标节点,以提高长连接服务连接的实时性控制;
91.目标节点的选取另可以根据当前连接状况结合上述选取方式的组合来选取,以从多维度的综合结果来优先选取目标节点。
92.所应理解的是,上述根据当前连接状况结合另一维度来选取目标节点,有利于在当前连接状况相同或相近的情形下快速获取目标节点,提高目标节点的获取效率,并使得所获取的目标节点有针对性,有利于发挥整个系统的高性能;即使仅根据当前连接状况而不结合另一维度来选取目标节点,由于当前连接状况本身具有了实时性,也有利于改善长连接服务的连接稳定性。
93.获取目标节点的时机可以按照设定的时机条件来进行,当满足设定的时机条件时,则触发目标节点的选取。时机条件包括且不限于:事件条件,例如,以建立长连接服务连接为事件;时间条件,例如,设定时间或者周期性时间到达;节点设备条件,例如,节点设备的参数达到设定的参数阈值,其中,节点可以是设定的节点,也可以是所有节点设备。
94.在本步骤中,为便于根据当前连接状况,从服务端包含的节点中获取目标节点,一种实施方式是,根据当前连接状况、以及节点与当前连接状况的对应关系,获取服务端中每个节点的当前累计连接数量,这里,每个节点系指服务端所获取的当前连接状况的各个节点,结合服务端接收节点上报的连接状况的情形,每个节点系指上报了连接状况的各个节点;这样,服务端便可全局性地获得每个节点的当前长连接服务状况;这里,鉴于长连接对同时连接的数量敏感性高,连接状况可以连接数量来描述,当前累计连接数量则可以通过统计连接数量来获得。
95.例如,服务端接收了m个节点上报的当前连接状况,m为大于等于1的自然数,服务端遍历每个节点,例如,根据节点1与当前连接状况的对应关系,获取节点1的当前连接数量,当前连接数量中包括时间戳1上报的连接数量3、时间戳2上报的连接数量为4,则节点1的当前累计连接数量为7,以此类推,便可获取服务端中m个节点的当前累计连接数量。
96.作为一种示例,在当前连接状况为长连接服务的当前连接信息的情况下,可获取服务端中每个节点的节点标识信息,从当前连接信息中,获取与每个节点的节点标识信息对应的当前子连接信息,根据每个节点的节点标识信息对应的当前子连接信息的信息数量,得到每个节点的当前累计连接数量,同样地,每个节点系指服务端所获取的当前连接信息的各个节点,结合服务端接收节点上报的连接状况的情形,每个节点系指上报了连接信息的各个节点,所应理解是,对于由于某种原因导致可能未能获得的当前累计连接数量的
节点,可通过其他技术手段予以处理,此处不再赘述。这里,利用长连接服务的当前连接信息来获得每个节点的当前累计连接数量,这种获取当前累计连接数量的方式,对于各节点而言只需上报当前连接信息即可,从而降低了节点对连接状况的处理要求,有利于提高节点运行的可靠性,也便于服务端对节点管理的升级开发。
97.例如,服务端接收了m个节点上报的当前连接信息,服务端遍历每个节点,例如,节点1的节点标识1对应有子连接标识id1、子连接标识id2、子连接标识id6,则根据子连接的不同标识,可确定节点1的当前连接数量为3,以此类推,便可获取服务端中m个节点的当前累计连接数量。为了提高长连接服务连接的稳定性,一种实施方式是,基于服务端中每个节点的当前累计连接数量来确定出目标节点,以从服务端所包括的节点集合中选取出目标节点,这里,每个节点系指通过上述方式获取了当前累计连接数量的各个节点,所应理解是,对于由于某种原因导致可能未能获得的了当前累计连接数量的节点,可通过其他技术手段予以处理,此处不再赘述。同样地,在当前累计连接数量相等或相近时,也可结合另一维度来确定目标节点。
98.例如,当前累计连接数量都是i的节点1和节点2,若节点1主要承载消息类业务,节点2主要承载内容类业务,则优选节点1作为目标节点。
99.作为一种示例,获取服务端中每个节点预先配置的连接数量阈值,将当前累计连接数量大于连接数量阈值的节点作为目标节点,由于各节点所配置的连接数量阈值不同,并且是从节点集合中进行选取,使得所选取的目标节点更具有实时性,同时也有利于从系统层面提高长连接服务的可靠性和自适应性。
100.例如,节点1的当前累计连接数量为i,节点1的连接数量阈值为t1,节点2的的当前累计连接数量为j,节点2的连接数量阈值为t2,若当前累计连接数量为i大于t1,则说明节点1的当前长连接服务的连接太多,因此,节点1确定为目标节点,同样地,若当前累计连接数量为j大于t2,则说明节点2的当前长连接服务的连接太多,因此,节点2确定为目标节点。
101.在确定目标节点之后,便可针对目标节点进行连接数量的调整。目标节点调整后的连接数量可以结合目标节点的业务类型、通信方式、负载能力、所承载各业务类型的比例、qos、流量控制等因素多维度地来确定,所应理解的是,不限于上述因素,任何有利于进行目标节点长连接服务连接的因素均可予以考虑。一种实施方式是,基于目标节点的当前累计连接数量,确定目标节点调整后的连接数量,从而实现对目标节点的连接数量的实时性调整;
102.例如,节点1的当前累计连接数量为i,节点1的连接数量阈值为t1,若当前累计连接数量为i大于t1,则说明节点1的当前长连接服务的连接太多,节点1确定为目标节点,鉴于连接数量阈值可对节点形成约束,故而,节点1可以按照当前累计连接数量i与连接数量阈值为t1之间的差异,来确定调整后的连接数量,所应理解的是,该差异可以是两者的差值,也可以是比例关系等用于描述两者差异程度的参数,在本实施例中,采用了差值来描述,有利于降低算法的复杂度。
103.作为一种示例,获取服务端对目标节点预先配置的负载能力,根据目标节点的负载能力以及当前累计连接数量,确定目标节点的当前连接数量,由于结合了负载能力和当前累计连接数量来调整目标节点的当前连接数量,这样,当前连接数量与目标节点所能够提供的长连接服务能力更为匹配,避免了触发目标节点数据流量的控制而导致长连接服务
中断连接,有利于提高长连接服务的可靠性和高可用性。例如,目标节点的负载能力可支持k个长连接服务连接,当前累计连接数量为i,将二者进行加权求和,将加权求和的结果作为调整后的连接数量。所应理解的是,由于负载能力的描述参数不同,具体应用中,可根据负载能力的描述参数转换结合当前累计连接数量转换相应的当量,来确定调整后的连接数量。
104.步骤103,按照目标节点其调整后的连接数量,控制目标节点的长连接服务的连接。
105.在该步骤中,所控制的长连接服务连接可以是控制连接时长、连接频次、有效载荷、流量、qos、连接数量等任何可提高长连接服务连接可用性的参数。
106.鉴于长连接服务连接对连接数量的敏感性,一种实施方式是,控制目标节点的长连接服务的连接数量。具体地,
107.获取目标节点的当前累计连接数量;
108.在目标节点的当前累计连接数量大于调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定目标节点的当前长连接服务的断开数量,按照断开数量,断开目标节点的当前长连接服务,并删除所断开长连接服务的连接状况记录;
109.在目标节点的当前累计连接数量小于所述调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定所述目标节点的当前长连接服务的冗余数量,按照冗余数量,建立目标节点的长连接服务的连接。
110.本步骤通过上述实施方式,既有利于目标节点的长连接服务的连接的自适应性调整,又有利于实现长连接服务的负载均衡,采用差值来确定控制的连接数量,有利于降低算法的复杂度。所应理解的是,按照断开数量所断开的连接具体是哪个连接可按照断开选择策略进行选择,例如,可以断开长连接服务连接建立时间不超过设定时长的连接,也可以断开有效载荷小于设定载荷阈值的连接,还可以断开将要触发流量控制的连接,又可以断开存在故障的连接,或者按照业务类型和/或各种业务类型的比例情况选择要断开的连接,或者是上述断开情形的任意组合。类似地,按照冗余数量所建立的连接具体是哪个连接可按照建立选择策略进行选择,例如,可以建立当前请求的连接,也可以按照业务类型和/或各种业务类型的比例情况建立所请求的连接,或者,通过节点之间的交互建立需要转移节点的连接,或者是上述建立情形的任意组合。
111.为便于理解本技术,以下结合业务系统中的长连接服务为例来进行说明,所应理解的是,该业务系统不限于某一特定业务,其可适用于多种业务类型,例如,内容服务业务、直播业务、消息业务等至少之一。
112.业务系统在提供业务的同时会面临着诸多的挑战,除了运维需要流量控制之外,业务系统本身也需要支持基本的流量控制逻辑,这意味着长连接应用场景下长连接服务也会由于流量控制而受到影响。为使得业务系统能够可靠地提供业务,通过长连接服务的连接数量的自适应调整,有利于解决业务链接的热点。
113.参见图2所示,图2为业务系统的一种示意图。作为一种示例,业务系统包括位于终端侧的客户端,以及承载业务的服务端,服务端可以是由若干独立设备组成分布式集群系统,这些独立设备通常称为节点;为便于集群系统的管理,服务端还可包括分布式应用程序
协调服务客户端,例如zookeeper,在本实施例中相当于中央分发器;服务端又可包括用于为集群系统进行系统全局配置的客户端。
114.参见图3所示,图3是根据一示例性实施例示出的长连接服务的连接方法的一种流程示意图。该方法包括:
115.步骤301,用于为集群系统进行系统全局配置的服务端侧客户端为集群系统进行配置,并将所配置的配置信息加载至集群系统中;
116.其中,集群系统包括有多个节点,服务端侧客户端可对集群系统中的节点进行管理,配置信息包括有集群系统中每个节点负载能力、所支持的长连接服务的连接数量阈值。
117.步骤302,终端侧的客户端接收来自终端的长连接服务的连接请求,
118.这里,终端侧的客户端是运行于终端中的应用程序,例如,可以是智能手机中的应用程序。连接请求可以包括有http的connection header以及目的ip地址。步骤303,终端侧的客户端响应于该长连接服务的连接请求,与服务端侧的集群系统中的一节点建立当前长连接服务的连接,为便于描述,后文将该节点称为第一节点。步骤304,第一节点响应于所建立当前长连接服务的连接,将其当前长连接服务的连接状况上报给zookeeper,以便zookeeper记录并存储所上报的连接状况;
119.所应理解的是,当多个终端侧的客户端分别响应来自其终端的长连接服务的连接请求时,各个终端分别与集群系统中的各个节点建立长连接服务的连接,各个节点分别响应于当前所建立的长连接服务,至少将其当前所建立的长连接服务的连接状况上报给zookeeper,还可以将以前建立且目前尚处于连接状态的长连接服务作为当前长连接服务的连接状况,并上报给zookeeper;zookeeper则分别记录并存储所上报的连接状况,这样,zookeeper就好比一个数据库,记录和存储所有节点的长连接服务的连接状况,并建立节点与当前连接状况的对应关系,以便于zookeeper对各个节点进行管理。
120.作为另一个示例,所述连接状况可以是由节点上报的该节点所累计的当前连接数量,也可以是节点上报的长连接服务的连接信息,其中,连接信息可以仅包括连接标识,例如,连接id,以减少zookeeper的存储空间的占用。鉴于节点通常既可以同时为多个终端提供长连接服务的连接,又可以为同一终端提供的多个长连接服务的连接,这些连接具有不同的连接信息,可称为节点的子连接。
121.步骤305,判断是否触发连接数量的调整,在满足设定条件的情况下,触发连接数量的调整,执行步骤306。
122.以zookeeper记录的各节点所累计的当前连接数量作为一个示例,zookeeper基于所存储的各节点的当前累计连接数量,判断所存储的各节点的当前累计连接数量是否大于该节点的设定连接数量阈值,如果是,则确定该节点为目标节点,触发该目标节点连接数量的调整,否则,确定该节点不为目标节点。
123.以zookeeper记录的各节点连接信息作为一个示例,zookeeper根据当前存储的各节点的子连接的连接信息,实时统计各节点的当前累计连接数量,并将统计结果进行存储,以得到各节点的当前累计连接数量,判断所存储的各节点的当前累计连接数量是否大于该节点的设定连接数量阈值,如果是,则确定该节点为目标节点,触发该目标节点连接数量的调整,否则,确定该节点不为目标节点。
124.其中,连接数量阈值根据所述服务端的全局配置确定,在系统配置时由各节点上
报给zookeeper;不同的节点可以具有不同的连接数量阈值,以使得连接数量与节点的负载能力匹配。
125.所述设定条件还可以是设定的目标时间阈值,例如,定时时间到达时,触发连接数量的调整;不同的节点可以具有不同的目标时间阈值,以使得连接数量与节点的运行状况匹配。
126.步骤306,zookeeper向目标节点发送集群系统中所有节点的当前累计连接数量,以用于进行连接数量的调整。
127.例如,在本实施例中,第一节点响应当前的长连接服务的连接后,当第一节点的当前累计连接数量大于第一节点的连接数量阈值时,第一节点被选取为一目标节点,zookeeper向第一节点发送所有节点的当前累计连接数量,以便第一节点从全局节点的当前累计连接数量角度来进行连接数量的调整,从而从整体上有利于提高业务系统的高可用性。
128.步骤307,目标节点分别根据所有节点的当前累计连接数量,按照连接数量计算策略,计算目标节点需要调整的连接数量。
129.作为一个示例,第一节点作为目标节点,根据所有节点的当前累计连接数量,按照所述第一节点的连接数量计算策略,确定所述第一节点的连接数量,作为调整后的连接数量。
130.其中,各个目标节点的连接数量计算策略可以是相同的,也可以是不同的。
131.进一步地,还可以结合所有节点的负载能力来进行调整,这样,有利于提高网络连接数量的均衡性。
132.作为一个示例,第一节点获取所述服务端中每个节点的负载能力,根据所有节点的负载能力以及当前累计连接数量,确定所述第一节点的当前连接数量;
133.其中,所述负载能力是根据所述服务端的全局配置确定的,在系统配置时由各节点上报给zookeeper,zookeeper在触发调整时目标节点推送所有节点的负载能力。
134.步骤308,对于目标节点,按照其调整后的连接数量,控制长连接服务的连接。
135.作为一种示例:
136.若目标节点的当前累计连接数量大于调整后的连接数量,则断开所述若干数量的当前长连接服务,并删除所断开长连接服务其连接状况记录;
137.若目标节点的当前累计连接数量小于调整后的连接数量,则建立若干下一长连接服务的连接;
138.其中,
139.所断开长连接服务的断开数量、所建立的下一长连接服务的冗余数量取决于当前累计连接数量与所述调整后的连接数量之间的差值。
140.具体地,
141.获取目标节点的当前累计连接数量;
142.在目标节点的当前累计连接数量大于调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定目标节点的当前长连接服务的断开数量,按照断开数量,断开目标节点的当前长连接服务,并删除所断开长连接服务的连接状况记录;
143.在目标节点的当前累计连接数量小于调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定目标节点的当前长连接服务的冗余数量,按照冗余数量,建立目标节点的长连接服务的连接。
144.作为一个示例,若第一节点的当前累计连接数量大于调整后的连接数量,则按照断开数量,通知终端断开当前所建立的长连接服务,并删除所断开长连接服务的连接状况记录;若第一节点的当前累计连接数量小于调整后的连接数量,则按照冗余数量,建立新的长连接服务的连接。
145.本实施例的长连接服务的连接方法,通过实时记录各节点当前长连接服务的连接状况,能够动态感知网络连接,通过根据所有节点的连接状况来调整目标节点的当前连接数量,能够动态分发网络连接,有利于各节点负载均衡,有利于提高长连接服务的高可用性,从而为终端提供稳定的业务。
146.参见图4所示,图4是根据一示例性实施例示出的长连接服务的连接装置的一种示意图。该装置包括,
147.记录模块41,被配置为记录所述服务端包含的节点所连接的长连接服务的当前连接状况,并建立节点与当前连接状况的对应关系;
148.协调模块42,被配置为根据所述当前连接状况,从所述服务端包含的节点中获取至少一个目标节点,并基于所述当前连接状况,获取所述目标节点调整后的连接数量;连接模块43,被配置为按照所述目标节点其调整后的连接数量,控制所述目标节点的长连接服务的连接。
149.其中,
150.所述协调模块42被配置为:
151.根据所述当前连接状况、以及所述节点与当前连接状况的对应关系,获取所述服务端中每个节点的当前累计连接数量;
152.基于所述服务端中每个节点的当前累计连接数量,从所述服务端包含的节点中确定出所述目标节点;
153.基于所述目标节点的当前累计连接数量,确定所述目标节点调整后的连接数量。
154.所述协调模块42进一步被配置为:
155.获取所述服务端对所述目标节点预先配置的负载能力;
156.根据所述目标节点的负载能力以及当前累计连接数量,确定所述目标节点的当前连接数量。
157.所述记录模块41被配置为:
158.响应于针对当前节点的长连接服务请求,接收所述当前节点上报的连接状况,所述连接状况包括累计的连接数量、或者长连接服务的连接信息;
159.存储所述当前节点上报的连接状况。
160.所述连接模块43被配置为:
161.获取目标节点的当前累计连接数量;
162.在目标节点的当前累计连接数量大于调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定目标节点的当前长连接服务的断开数量,按照断开数量,断开目标节点的当前长连接服务,并删除所断开长连接服务的连接状况记
录;
163.在目标节点的当前累计连接数量小于调整后的连接数量的情况下,基于当前累计连接数量与调整后的连接数量之间的差值,确定目标节点的当前长连接服务的冗余数量,按照冗余数量,建立目标节点的长连接服务的连接。
164.参见图5所示,图5是根据一示例性实施例示出的电子设备的一种示意图。该电子设备包括处理器;用于存储所述处理器的可执行指令的存储器;
165.其中,所述处理器被配置为执行所述可执行指令,以实现任一所述业务标签展示方法。
166.在示例性实施例中,还提供了一种包括至少一条指令的计算机可读存储介质,例如包括至少一条指令的存储器,上述至少一条指令可由计算机设备中的处理器执行以完成上述实施例中所述业务标签展示方法。
167.可选地,上述计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以包括rom(read-only memory,只读存储器)、ram(random-access memory,随机存取存储器)、cd-rom(compact disc read-only memory,只读光盘)、磁带、软盘和光数据存储设备等。
168.在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由计算机设备的处理器执行,以完成上述各个实施例所述业务标签展示方法。
169.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术公开的其它实施方案。本技术公开旨在涵盖本技术公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术公开的一般性原理并包括本技术公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术公开的真正范围和精神由下面的权利要求指出。
170.应当理解的是,本技术公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术公开的范围仅由所附的权利要求来限制。
再多了解一些

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

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

相关文献