[发明专利]一种分布式去中心化的负载均衡方法及系统有效
申请号: | 202110316386.7 | 申请日: | 2021-03-24 |
公开(公告)号: | CN113157441B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 赵景石;施王兴;杜晓祥 | 申请(专利权)人: | 北京云上曲率科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京华清迪源知识产权代理有限公司 11577 | 代理人: | 孙志一 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 中心 负载 均衡 方法 系统 | ||
本发明实施例公开了一种分布式去中心化的负载均衡方法及系统,在分布式系统服务进程内部设置代理模式插件,可以根据系统服务之间业务调用的方式不同,设置不同的代理,设置完服务调用的代理插件之后,代理插件内部会和服务注册与发现中心建立长连接,进行服务进程的注册与发现,代理插件内部也有定期健康检测功能;在分布式服务进程需要给下游服务发送请求的时候,全都是通过代理去发送请求,代理内部自动完成去中心化的负载均衡调用,业务方无需关心代理的内部实现。这样降低了代码的冗余度,服务之间调用更加简单易用,提高了系统的易用性和高可用性。
技术领域
本发明实施例涉及互联网技术领域,具体涉及一种分布式去中心化的负载均衡方法及系统。
背景技术
在如今的分布式系统环境下,服务之间的调用非常的频繁,不同服务之间根据业务的不同,调用方式也不同。尤其是在微服务系统下服务发现与注册功能显得尤为重要,当下也有很多服务注册与发现的开源项目(zookeeper、etcd、consol),这些组件虽然解决了现有分布式系统下的服务注册与发现的相关问题,但每个组件都有自身的缺点,还存在不足之处,比如:1、不支持实时服务信息的变化通知;2、没有健康检查;3、不支持多数据中心;4、接口api调用复杂,不易用(sdk集成或者http接口)。
发明内容
为此,本发明实施例提供一种分布式去中心化的负载均衡方法,基于代理插件与服务注册与发现中心相结合的方式,提高了服务进程之间调用的高可用性,使服务调用更加简单易用,降低了代码的冗余度,提高了开发效率。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提出了一种分布式去中心化的负载均衡方法,所述方法包括:
在业务服务进程内部设置有不同的代理插件,当业务服务进程需要调用下游服务时,均通过内部设置的代理插件向所调用的下游服务发送请求,且代理插件在第一次向下游服务发送请求时会通过请求服务注册与发现中心获取到该下游服务的服务地址列表并放入本地缓存中,再按照设置的负载均衡方式,选择一个服务地址建立长连接自动负载均衡,而在下次请求服务时,直接从本地缓存中获取该服务地址列表进行自动负载均衡;
业务服务进程内的代理插件定期自动上报服务进程的内部状态、服务所在机器的负载情况到服务注册与发现中心进行健康检测,并根据上报返回的结果进行代理插件内缓存的服务地址列表的更新;
服务注册与发现中心将监控到的服务的变化实时通知到监听该服务的的业务服务进程中,以便更新代理插件内缓存的服务地址列表。
进一步地,所述方法还包括:
业务服务进程启动后会通过代理插件完成在服务注册与发现中心的服务地址相关信息的自动注册。
进一步地,所述方法还包括:
若健康检测失败,说明业务服务进程与服务注册与发现中心出现网络故障或者服务注册与发现中心处于不可用状态,此时代理插件内部通过本地缓存可到下游服务的地址,继续执行发送请求的需要。
进一步地,所述方法还包括:
在代理插件内部会配置多个服务注册与发现中心的地址,多个服务注册与发现中心定时同步数据,在与一个服务注册与发现中心建立连接或者中途连接断开时,代理插件内部会轮询服务注册与发现中心的地址,直到连接上其中一个。
进一步地,所述服务所在机器的负载情况包括cpu load、cpu使用率、当前机器的连接数。
根据本发明实施例的第二方面,提出了一种分布式去中心化的负载均衡系统,所述系统包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京云上曲率科技有限公司,未经北京云上曲率科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110316386.7/2.html,转载请声明来源钻瓜专利网。