一种高效的负载均衡调度的软件架构
来源:互联网 发布:简单的网络拓扑图 编辑:程序博客网 时间: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
- 一种高效的负载均衡调度的软件架构
- 一种高效的负载均衡调度的软件架构
- 一种负载均衡的算法
- linux负载均衡调度算法的实现
- windows下负载均衡的一种方案
- 一种服务器的负载均衡选取算法
- 一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究
- Nginx的负载均衡 - 整体架构
- Nginx的负载均衡 - 整体架构
- 基于Nginx的负载均衡网站架构
- 一种高效的跨进程MVC架构
- 软件与硬件负载均衡的比较
- 软件与硬件负载均衡的比较
- 软件与硬件负载均衡的比较
- Nginx 的软件负载均衡详解
- Nginx 的软件负载均衡详解
- 常用的负载均衡软件详解
- 三种LVS负载均衡模式及LVS负载均衡的八种调度算法
- 面具-匿名社交APP
- mongodb的数据库备份与还原
- 网站缓存技术
- oracle建表后添加数据报错:ORA-01658:无法为表空间中的段创建INITIAL区
- 使用c++11标准库转换字符编码
- 一种高效的负载均衡调度的软件架构
- FragmentTransaction add 和 replace 区别
- HTML 5 中WebStorage实现数据本地存储
- 音视频编解码
- form或plsql中数字格式掩码的设置
- DevExpress系列之BarManager控件使用
- 阿里云ONS和微软Azure Service Bus的架构和特性比较
- 使用Xcode6和IOS8SDK以后遇到的问题
- Android蓝牙