[发明专利]用于分布式系统的负载均衡及高可用性子系统及方法有效
申请号: | 201310441317.4 | 申请日: | 2013-09-25 |
公开(公告)号: | CN103457870A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 钟珞;曹东;柴泽楚;何双江;贺茂强 | 申请(专利权)人: | 武汉理工大学;武汉日电光通信工业有限公司 |
主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L29/08 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 王丹 |
地址: | 430070 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 分布式 系统 负载 均衡 可用性 子系统 方法 | ||
技术领域
本发明涉及分布式系统领域,尤其涉及一种用于分布式系统的负载均衡及高可用性子系统及方法。
背景技术
在大多数分布式系统中,都会涉及到大量用户并发访问某一个资源的情况,此时如果该资源集中在一台服务器上,那么显然这台服务器将承受巨大的压力。这种情况下这台服务器的CPU、内存和I/O系统很快会达到性能上限,最终会成为系统的性能瓶颈。由于单台服务器无论如何提升其硬件配置始终存在性能上限,如果用户并发规模持续扩大,单台服务器显然无法满足不断扩大的并发规模。而只有采用服务器集群方式才能有效性根据并发规模动态调整集群规模,最终解决上述问题。
服务器集群是一个由多台服务器组成的分布式系统,如果大量用户并发访问集群上的某一个资源,显然这个资源是被分布在集群中的多台机器上的,那么就会出现两个问题。第一,如何将大量用户并发进行分流,即负载均衡。第二,分布式系统中可能出现集群中的部分服务器无法继续提供服务,而另一部分服务器能够接替其工作,即高可用性。
其中一种方法所采用的实现方式是在服务端加上一个中央控制系统,即所有用户并发请求均先分发到中央控制系统上,再由中央控制系统根据集群中各个服务器的动态权值和当前服务器的运行状况进行分流。
如果采用上述处理方式就会存在以下问题。首先,由于所有用户并发请求均先分发到中央控制系统上,那么中央控制系统可能出现性能瓶颈;其次,中央控制系统要处理大量并发计算动态权值,就需要用到动态权值的锁同步等并发同步策略,会降低系统的并发能力,如果遇到所选服务器宕机需要重新同步计算;最后,无论分流过程开销多么小,当大量并发存在的情况下都会导致用户请求的执行时间较长,影响用户体验。
其中另一种方法是在服务端根据集群中服务器的权值设置,根据权值在中央控制系统中生成一个轮流执行各个服务器的排程表或者根据权值生成一个随机执行各个服务器的排程表,这个排程表中包含了所有排程次序,通过排程表分流大量用户的并发请求。
如果采用上述处理方式就会存在以下问题。首先,排程表是在中央控制系统中,也就是说中央控制系统需要协调各个客户机请求的执行;其次,协调各个客户机请求需要消耗中央控制系统的资源,可能导致瓶颈的出现;最后,当有服务器宕机或加入新的服务器时,排程表需要考虑前一次的排程情况来重新生成排程表。
发明内容
本发明要解决的技术问题是:提供一种用于分布式系统的负载均衡及高可用性子系统及方法,实现分布式系统的负载均衡和高可用性。
本发明为解决上述技术问题所采取的技术方案为:
用于分布式系统的负载均衡及高可用性子系统,其特征在于:它包括至少2个服务提供者模块A30、注册中心模块A10和至少一个客户端模块A20;其中
每个服务提供者模块A30包括服务注册模块A31、概率分布计算服务模块A32、服务模块A33和服务权值计算模块A34;服务权值计算模块A34用于服务提供者模块启动时计算服务提供者的服务能力,即服务权值;概率分布计算服务模块A32用于在服务提供者注册时,获取当前时刻其它提供相同服务的服务提供者的信息,并计算此类服务的服务提供者概率分布;服务注册模块A31用于当服务提供者提供服务时向注册中心模块A10注册;服务模块A33用于提供服务;
注册中心模块A10包括统一命名服务模块A11、消息通知服务模块A12和服务提供者列表模块A13;统一命名服务模块A11用于在服务提供者注册时,根据服务名生成一个集群内唯一的服务路径供客户端A20查找;服务提供者列表模块A13用于存储每个服务所对应的服务提供者列表和服务提供者概率分布;消息通知服务模块A12用于在高可用性模块A23重新选择一个可用的服务提供者时,将对应的新服务提供者概率分布通知给所有客户端模块A20和所有服务提供者模块A30;
客户端模块A20包括注册中心连接器A21、负载均衡模块A22、高可用性模块A23和调用服务模块A24;注册中心连接器A21用于连接注册中心模块A10,根据所需要的服务依据统一命名服务模块A11生成的服务路径,从服务提供者列表模块A13中获得对应的服务提供者列表和服务提供者概率分布;负载均衡模块A22用于根据服务提供者概率分布进行负载均衡计算,随机选择一个服务提供者;调用服务模块A24用于在负载均衡模块A22选择的服务提供者可用时,调用对应服务提供者模块A30的服务模块A33;高可用性模块A23用于在负载均衡模块A22选择的服务提供者不可用时,重新选择一个可用的服务提供者,并重新计算此服务对应的新服务提供者概率分布。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉理工大学;武汉日电光通信工业有限公司,未经武汉理工大学;武汉日电光通信工业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310441317.4/2.html,转载请声明来源钻瓜专利网。