[发明专利]应用于移动端的自适应负载均衡和保证高可用的方法有效
申请号: | 202110310952.3 | 申请日: | 2021-03-23 |
公开(公告)号: | CN113157440B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 赵健军;施王兴;杜晓祥 | 申请(专利权)人: | 北京云上曲率科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京华清迪源知识产权代理有限公司 11577 | 代理人: | 杜立军 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用于 移动 自适应 负载 均衡 保证 可用 方法 | ||
1.一种应用于移动端的自适应负载均衡和保证高可用的方法,其特征在于,所述方法包括:在移动客户端运行有连接建立模块,在服务端运行有资源调度模块;
所述连接建立模块用于向资源调度模块请求获取可用服务器信息以建立连接,当连接不成功时,使用多种备选方案进行并行重试,当某一方案连接成功时,将成功状态返回给客户端业务逻辑;动态探测已建立的连接状态,当出现异常时主动转移连接;当出现某台服务器负载高于负载阈值时,接收资源调度模块推送的负载转移信令进行负载转移;
所述资源调度模块用于定期收集服务器集群内各业务服务器的状态信息并在集群内同步,计算各业务服务器的状态得分,接收并响应客户端的请求将可用服务器信息返回给连接建立模块;当出现某台服务器负载高于负载阈值时,根据算法筛选出需要转移的客户端,并向客户端推送负载转移信令通知部分客户端将连接转移至其他服务器;动态计算某一区域用户的异常状态情况,当用户所在区域异常比例高于区域阈值时对来自该区域的用户实现自动转移;基于机器学习策略对可能出现异常的用户进行预测,将用户提前转移至可正常服务的服务器;
所述资源调度模块定期收集服务器集群内各业务服务器的状态信息并在集群内同步,计算各业务服务器的状态得分,具体包括:
收集业务服务器定时汇报的状态信息并存储在内存中,所述状态信息包括机器IPV4地址、IPV6地址、对外域名、CPU使用情况、内存占用情况、网卡流量使用情况以及磁盘IO使用情况;
根据所收集到的状态信息,计算出资源得分,并将资源得分结果存储在内存中,资源得分计算公式为:资源得分=CPU使用率*第一权重系数+内存使用率*第二权重系数+网卡流量*第三权重系数+磁盘IO*第四权重系数;
当有业务服务器宕机时,资源调度模块根据连接断开事件及时感知,并清理内存中对应业务服务器的状态信息;
定期检查内存中的业务服务器状态信息,当某台业务服务器超过配置的时间阈值没有进行状态汇报,则资源调度模块从内存中清理掉该台服务器的状态信息;
定期将内存中的全量状态信息同步给集群中的其他资源调度模块;
所述资源调度模块接收并响应客户端的请求将可用服务器信息返回给连接建立模块,具体包括:
根据内存中各业务服务器状态信息资源得分,获得资源得分最小的服务器;
从内存中查询到资源得分最小的服务器的IPV4地址、IPV6地址、对外域名信息,并将以上信息写入应答包中,将所述应答包返回给客户端;
所述连接建立模块向资源调度模块请求获取可用服务器信息以建立连接,当连接不成功时,使用多种备选方案进行并行重试,当某一方案连接成功时,将成功状态返回给客户端业务逻辑,具体包括:
向服务端的资源调度模块发送请求,并接收资源调度模块返回的可用服务器信息应答包并解析其中内容;
使用应答包中的IPV4地址进行连接,当连接成功时,结束全部流程,通知客户端连接建立成功并将连接句柄返回给客户端业务逻辑;
当连接建立失败时,启动三个异步线程,针对应答包中的IPV4地址、IPV6地址和对外域名,分别在异步线程中尝试建立连接,当任何一个异步线程中首先建立连接成功时,则结束其他异步线程的工作,通知客户端连接建立成功并将连接句柄返回给客户端业务逻辑;
当全部异步连接线程都连接失败时,重复执行以上异步线程步骤,直到满足配置的次数阈值后仍未成功建立连接,则终止尝试,通知客户端连接建立失败;
所述资源调度模块在当出现某台服务器负载高于负载阈值时,根据算法筛选出需要转移的客户端,向客户端推送负载转移信令通知部分客户端将连接转移至其他服务器,具体包括:
遍历内存中的各业务服务器资源得分,将资源得分大于资源配置阈值的服务器加入待处理队列;
遍历待处理队列,获取待处理队列中每台服务器上的客户端连接信息,计算每个连接的加权得分值,加权得分计算公式为:加权得分=登录时长加权值+连接活跃度*第五权重系数+连接健康得分*第六权重系数,其中,连接活跃度通过该连接最近N次发包时间进行加权计算均值得出,连接健康得分根据该连接最近N次发生丢包、超时错误的次数计算得出;
将上述加权得分值最高的前M个连接,加入待转移队列;
遍历待转移队列中的所有连接,将负载转移信令通过双工的TCP连接推送至客户端转移负载;
所述连接建立模块在当出现异常时主动转移连接以及当出现某台服务器负载高于负载阈值时,接收资源调度模块推送的负载转移信令进行负载转移,具体包括:
当接收到服务端推送的负载转移信令时,将负载转移状态加入待处理队列;
定期计算客户端自身与服务器连接的健康得分,健康得分根据该连接最近N次发生丢包、超时错误的次数加权计算得出,当健康得分超过健康配置阈值时,将异常转移状态加入待处理队列;
当待处理队列中存在负载转移状态或异常转移状态时,则重新向资源调度模块请求获取可用服务器信息以建立连接;
所述资源调度模块动态计算某一区域用户的异常状态情况,当用户所在区域异常比例高于区域阈值时对来自该区域的用户实现自动转移,具体包括:
当出现连接异常断开时,收集用户相关的区域信息,发送至区域统计子模块;
区域统计子模块定期对所存储的区域异常信息进行计算分类,得出异常出现概率较高的区域用户分布比例;
将异常用户比例高于区域阈值的区域信息同步至资源调度模块;
当新用户请求连接后端服务器时,资源调度模块通过对新用户区域进行判断,当新用户所在区域异常比例高于区域阈值时,自动将该新用户连接至其他可用区,实现区域用户的转移;
所述资源调度模块基于机器学习策略对可能出现异常的用户进行预测,将用户提前转移至可正常服务的服务器,具体包括:
将服务端收集到的正常行为数据和异常行为数据同步给离线计算子模块,正常行为数据和异常行为数据包括:用户区域、用户网络运营商信息、用户最近N次错误原因及时间、用户最近N次连接断开时间、用户重新连接间隔、用户最近N次请求的延迟;
离线计算子模块定期从正常行为数据和异常行为数据提取样本特征,将特征归一化后得到一组训练数据,构建预测模型,结合所述训练数据并使用梯度下降法计算出当损失函数最小时的模型参数;
将计算所生成的预测模型及参数定期同步至资源调度模块;
资源调度模块定期对新连接和已有连接使用预测模型进行计算,将计算得出的异常高风险连接标记;
资源调度模块定期将高风险连接转移至服务的其他可用区,完成异常的提前转移。
2.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被处理器执行如权利要求1所述的应用于移动端的自适应负载均衡和保证高可用的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京云上曲率科技有限公司,未经北京云上曲率科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110310952.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种缫丝机用烘干杀菌设备
- 下一篇:终端设备电子凭证获取方法、装置、电子设备