一种高效的负载均衡调度的软件架构

来源:互联网 发布:简单的网络拓扑图 编辑:程序博客网 时间:2024/06/01 13:00
负载均衡策略是互联网开发运营过程中经常遇到的一类问题。负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡策略分为两类:一类是硬件负载均衡,比较常见的硬件负载均衡软件,例如F5等昂贵的商用软件。商用负载均衡软件,业务处理效率比较高,有专业的团队提供咨询与维护服务,毕竟术业有专攻,而且从底层硬件的角度进行优化,软件层次的优化往往无法与之比拟,这主要是其优点,缺点主要在于:昂贵的费用(可以查看F5的报价http://detail.zol.com.cn/load_leveling/f5/,高效的服务,往往是对其某些方面进行了大量的优化处理,导致其通用性以及扩展性不是很好;第二类是开源软件负载均衡,比较常见的软件负载均衡有:LVS、Nginx、HAProxy等软件,其中LVS是工作与内核态,同时建立在四层协议之上,Nginx和HAProxy则建立在七层协议之上。LVS提供了轮交调度、加权轮交调度、目标地址散列等十种调度方法,Nginx提供轮交、权重、目标地址散列等五种调度算法,甚至可以编写Nginx插件,实现自定义的Nginx调度方法。
但是,在大型服务开发过程中,往往会根据业务的场景与需求,来自定义实现一套负载均衡的软件服务,现在来简单介绍一下。
负载均衡服务的设计目标:
1)业务请求的均衡分布
2)支持根据业务ID或者账户ID进行路由
3)异常服务的自动屏蔽以及回复
4)人性化的服务管理
系统的整体架构图如下:

图1——整体架构图

首先来看一下正常情况下的业务处理流程:
1)用户通过前端的操作,触发请求到“请求处理”模块(即逻辑层);
2)“请求处理”又依赖于服务集群中的服务数据,“请求处理”调用“配置API”接口获取当前可用的地址;
3)“请求处理”根据获取到的服务地址,向“服务方”发起调用;
4)“请求处理”逻辑将“服务方”的服务质量,例如是否可用,是否超时等类型,再次调用“配置API”写入到统计数据中;
5)返回业务请求处理结果;
图1中,第2步,从”配置API“获取当前可用的服务IP非常容易理解,但是为啥又有第5步,更新数据呢?在第5中,更新服务质量的主要目的在于自动的统计计算当前服务的可用负载,即提高还是降低当前服务的请求量,发现不可用时及时从当前服务列表中剔除。

转载 :http://blog.csdn.net/jiang1013nan/article/details/20835491
0 0
原创粉丝点击