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

一种基于长连接消息通道限流方法及系统与流程

2022-02-20 07:55:23 来源:中国专利 TAG:


1.本发明涉及通信技术领域,更具体地说,它涉及一种基于长连接消息通道限流方法及系统。


背景技术:

2.限流技术是当高并发系统服务达到一定速率或阈值时,通过实现特定算法或引入队列对并发访问进行控制,用于保护系统服务持续正常运行的一种技术。目前限流技术一般采用信号量、滑动窗口、计数器等方式实现,也可通过引入缓存、消息中间件等方式完成限流。
3.一个长连接系统一般由客户端和服务端组成,客户端主动向服务端发起建立长连接请求,经服务端校验通过后开始进行交互通信。在面向有大量客户端场景时,海量的长连接容易造成服务器压力过大导致宕机,因此需由服务端做限流控制,达到一定并发量后实行降级、排队或拒绝服务。
4.但仅从服务端限制,若服务出现故障时,并无法阻止大量客户端在短一时间内一拥而入再次造成的服务崩溃,也会影响到客户端长时间无法重新连接。


技术实现要素:

5.本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的一是提供一种可以防止服务崩溃的基于长连接消息通道限流方法。
6.本发明的目的二是提供一种可以防止服务崩溃的基于长连接消息通道限流系统。
7.为了实现上述目的一,本发明提供一种基于长连接消息通道限流方法,包括在服务端根据当前连接数进行限流的步骤以及在客户端根据连接失败次数进行限流的步骤。
8.作为进一步地改进,在服务端根据当前连接数进行限流的步骤包括:
9.在所述服务端设定连接数降级的初始阈值,允许接收的最大连接数;所述服务端接收来自所述客户端的请求后,按所述当前连接数判断所述服务端当前是否已降级;
10.如果当前连接数《初始阈值,则所述客户端的请求合法,所述服务端与客户端直接建立长连接,建立长连接通道成功后,所述当前连接数加1;
11.如果初始阈值≤当前连接数《最大连接数,则所述服务端主动降级为限制级,根据所述客户端的请求次数响应连接失败结果并返回下次连接服务端地址、重新请求时间,记录该客户端的请求次数;
12.如果最大连接数≤当前连接数,则所述服务端主动降级为最高等级,拒绝所述客户端的连接请求,返回失败结果与重新请求时间。
13.进一步地,当所述服务端主动降级为限制级且所述客户端的请求次数达到设定重试次数时,则所述服务端允许通过该客户端的连接请求,并返回成功结果。
14.进一步地,所述重新请求时间由该客户端的请求次数决定,记录该客户端的请求次数越多,则返回下次重新请求时间的间隔越长。
15.进一步地,在客户端根据连接失败次数进行限流的步骤包括:
16.在所述客户端设定最长重试间隔时间;
17.当所述客户端为首次进行连接时,则直接向所述服务端请求建立长连接通道;
18.当所述客户端接收到所述服务端返回的失败结果、重新请求时间,则所述客户端休眠所述重新请求时间后,再次进行请求建立长连接通道;
19.当所述客户端发出请求并达到设定未响应时间时,所述客户端未能接收到所述服务端返回的结果,则连接失败次数加1,根据所述连接失败次数确定下次重试间隔时间,所述客户端休眠所述下次重试间隔时间后,再次进行请求建立长连接通道。
20.进一步地,所述下次重试间隔时间以客户端算法为准,所述下次重试间隔时间=连接失败次数*随机数*常数。
21.进一步地,当最长重试间隔时间≤下次重试间隔时间,则所述客户端休眠最长重试间隔时间后,再次进行请求建立长连接通道。
22.进一步地,当所述客户端与服务端断开连接后,所述当前连接数减1。
23.为了实现上述目的二,本发明提供一种基于长连接消息通道限流系统,包括服务端、客户端,所述服务端与客户端通信连接,所述服务端、客户端根据上述的一种基于长连接消息通道限流方法建立长连接通道。
24.作为进一步地改进,所述服务端包括至少一个服务器,所述客户端包括智能手机、智能手表、平板、pc中的至少一种。
25.有益效果
26.本发明与现有技术相比,具有的优点为:
27.本发明通过服务端与客户端两者结合的方案,优先保证在服务端获得良好的限流效果同时,减少了因客户端引起的瞬时高并发场景问题。
附图说明
28.图1为本发明的流程图。
具体实施方式
29.下面结合附图中的具体实施例对本发明做进一步的说明。
30.参阅图1,一种基于长连接消息通道限流方法,包括在服务端根据当前连接数进行限流的步骤以及在客户端根据连接失败次数进行限流的步骤。
31.在服务端根据当前连接数进行限流的步骤包括:
32.在服务端设定连接数降级的初始阈值v,允许接收的最大连接数m;服务端接收来自客户端的请求后,按当前连接数判断服务端当前是否已降级;
33.如果当前连接数《初始阈值v,则客户端的请求合法,服务端与客户端直接建立长连接,建立长连接通道成功后,当前连接数加1;当客户端与服务端断开连接后,当前连接数减1;
34.如果初始阈值v≤当前连接数《最大连接数m,则服务端主动降级为限制级,根据客户端的请求次数响应连接失败结果并返回下次连接服务端地址、重新请求时间,记录该客户端的请求次数;客户端的请求次数达到设定重试次数时,则服务端允许通过该客户端的
连接请求,并返回成功结果;
35.如果最大连接数m≤当前连接数,则服务端主动降级为最高等级,拒绝客户端的连接请求,返回失败结果与重新请求时间。
36.重新请求时间由该客户端的请求次数决定,记录该客户端的请求次数越多,则返回下次重新请求时间的间隔越长。
37.在客户端根据连接失败次数进行限流的步骤包括:
38.在客户端设定最长重试间隔时间t;
39.当客户端为首次进行连接时,则直接向服务端请求建立长连接通道;
40.当客户端接收到服务端返回的失败结果、重新请求时间,则客户端休眠重新请求时间后,再次进行请求建立长连接通道;
41.当客户端发出请求并达到设定未响应时间时,客户端未能接收到服务端返回的结果,则连接失败次数加1,根据连接失败次数确定下次重试间隔时间,客户端休眠下次重试间隔时间后,再次进行请求建立长连接通道;连接成功后连接失败次数清零。
42.下次重试间隔时间以客户端算法为准,下次重试间隔时间=连接失败次数*随机数*常数,下次重试间隔时间为随机的,可以在一定程度减少同一时间发起请求的客户端数量,提高连接成功率。
43.当最长重试间隔时间t≤下次重试间隔时间,则客户端休眠最长重试间隔时间t后,再次进行请求建立长连接通道。
44.一种基于长连接消息通道限流系统,包括服务端、客户端,服务端与客户端通信连接,服务端、客户端根据上述的一种基于长连接消息通道限流方法建立长连接通道。服务端包括至少一个服务器,客户端包括智能手机、智能手表、平板、pc中的至少一种。
45.本发明通过服务端与客户端两者结合的方案,优先保证在服务端获得良好的限流效果同时,减少了因客户端引起的瞬时高并发场景问题。
46.以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。
再多了解一些

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

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

相关文献