[发明专利]一种基于动态权重的负载均衡系统在审
申请号: | 202011086129.0 | 申请日: | 2020-10-12 |
公开(公告)号: | CN112217894A | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 李莹;张田浩;张凌飞;尹建伟;邓水光 | 申请(专利权)人: | 浙江大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 权重 负载 均衡 系统 | ||
1.一种基于动态权重的负载均衡系统,包括注册中心、配置中心、监控中心、网关、熔断器以及负载均衡器,其特征在于:
所述注册中心用于记录各服务实例的服务名和元数据信息;
所述配置中心用于存储和修改各服务实例的配置信息;
所述监控中心用于判断各服务实例的健康状态;
所述网关用于分发用户的请求;
所述熔断器设置在网关与服务实例之间,当服务实例不可用时熔断;
所述负载均衡器集成在网关,其根据服务实例能够承受的最大并发量以及对请求的平均响应时间在同一种服务中为请求选择较优的服务实例。
2.根据权利要求1所述的负载均衡系统,其特征在于:所述元数据信息包括IP地址、最大线程数和最大并发量。
3.根据权利要求1所述的负载均衡系统,其特征在于:所述注册中心采用Netflix OSS中的Eureka实现,网关采用Zuul实现,熔断器采用Hystrix实现,配置中心采用SpringConfig实现,监控中心采用Boot Admin实现。
4.根据权利要求1所述的负载均衡系统,其特征在于:所述负载均衡器包括服务请求模块、动态权重维护模块以及请求分发模块,其中:
所述服务请求模块用于与注册中心交互,通过注册中心提供的API实现,即注册中心提供了查询所有服务实例的接口;
所述动态权重维护模块用于维护各服务的服务实例权重列表,该模块与熔断器交互以获取各服务实例对请求的平均响应时间,并根据最大并发量为每个服务实例赋予初始权重,进而每30s根据服务实例对请求的平均响应时间调节权重;
所述请求分发模块与网关交互,根据请求所要求的服务,从动态权重维护模块中提取对应的服务实例权重列表,从0~1之间随机生成一个数,使该随机数与列表中最后一个元素值相乘得到结果A,从头对列表进行遍历寻找出第一个比结果A大的元素值,根据该元素值序号从服务请求模块中提取对应的服务实例,检查该服务实例对应的熔断器状态,如果熔断器状态OK,则将请求分发给该服务实例,否则继续遍历列表寻找下一个元素值及其对应的服务实例。
5.根据权利要求4所述的负载均衡系统,其特征在于:所述服务请求模块每30s向注册中心中发送查询所有服务实例的请求并对结果进行解析并缓存,当所获得的结果与本地缓存中不一致时,则更新本地缓存。
6.根据权利要求4所述的负载均衡系统,其特征在于:所述动态权重维护模块赋予的初始权重与最大并发量呈正比例关系,在调节权重时若服务实例的平均响应时间越低,则增大其权重。
7.根据权利要求4所述的负载均衡系统,其特征在于:所述服务实例权重列表与服务相对应即一个服务名对应一张服务实例权重列表,该列表中第i个元素值记录的是前i个服务实例的权重累加值,i为大于0的自然数。
8.根据权利要求1所述的负载均衡系统,其特征在于:该负载均衡系统将服务实例中固定配置的指标以及运行状态中通过监控获取到的性能指标结合起来,设计对服务实例提供服务能力的评价标准,能够更加动态更加准确的反应服务实例的服务提供能力,可以应用在微服务网关中来处理对于同名服务访问的负载均衡。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011086129.0/1.html,转载请声明来源钻瓜专利网。