负载均衡层设计方案之负载均衡技术总结篇
自己写:CDN网络没有特别复杂的技术门槛,如果您有特别的需求,可以自己写一个。当然上图中所介绍的CDN网络属于第一代CDN网络,将第二代/第三代P2P技术加入到CDN原理中,可以形成第二代CDN网络:如下图所示: ![]() 第三代P2P技术又被称为混合型P2P技术主要是为了解决元数据服务器的处理压力,加速资源的本地化速度。关于P2P技术我会在讲完“业务系统设计”、“业务通信系统设计”后,专门做一个新的专题进行介绍。另外提一下,YouTube的P2P网络就是自己做的。 3、负载均衡层技术汇总 3-4、Keepalived技术 在这些文章中从来没有单独介绍Keepalived。这是因Keepalived是为了监控集群节点的工作状态,在因为某种原因不能正常提供服务的前提下,完成备机的切换。这里面有两个关键点:监控节点上提供的服务、完成网络切换。keepalived本身是不提供业务服务的,只是监控提供的服务是否正常工作,那么既然都没有可以监控的服务,那么Keepalived有什么独立使用的必要呢? 下图是Nginx + Keepalived的工作结构和LVS + Keepalived 的工作结构: ![]() Nginx + Keepalived的工作方式 ![]() LVS + Keepalived + Nginx的工作方式 相关技术还有: Heartbeat是Linux-HA计划中的一个重要项目,它的功能比Keepalived更强大,安装和管理也相对复杂。网络上有很多资料介绍Heartbeat和Keepalived的优缺点和使用对比。但就我自己的使用经验来说,个人更喜欢使用Keepalived,原因很简单:Keepalived安装和配置更简单,而且够用。另外Redhat Rhcs套件也可以搭建类似的HA集群,但是说实话本人没有尝试过。 3-5、DNS轮询和智能DNS //TODO DNS技术还没有介绍 3-6、硬件负载 在这个系列的“负载均衡层设计方案”博文中,我们所提到的诸如Nginx、LVS等技术,没有详细讲述的Haproxy、Squid等技术,都是基于软件的负载技术。F5是一家公司,它的BIG-IP LTM技术是基于硬件负载的。硬件负载方案提供了软件负载技术无法提供了性能空间,并且集成了NAT映射功能、SSL加速、Cookie加密、高速缓存、攻击过滤、包过滤、动态Session保持等等很多软件负载无法提供的功能(或者需要多个软件组合使用才能提供的功能)。 但是硬件负载方案也有其缺点,主要就是建设费用比较高昂,它不像软负载可以根据系统的吞吐量的持续增加进行持续扩展。当然您可以根据系统的吞吐量需求,在前期采用软负载,后期采用硬件负载的方案。除了F5公司提供的硬件负载技术,还有Citrix公司的硬负载方案、A10公司的硬件负载方案。 ![]() 4、常见负载均衡技术组合 这里我们在重新回顾一下这个系列博文中,提到的目前常用的负载均衡技术的组合方式。 4-1、独立的Nginx/Haproxy ![]() 一般的WEB系统,前段假设一个Nginx或者Haproxy服务器,基本上可以解决包括负载分发在内的很多问题了。 4-2、Nginx + Keepalived 或 Haproxy + Keepalived 或 + Heartbeat ![]() 为了保证Nginx或者HaProxy服务器的稳定性,可以使用Keepalived或者Heartbeat做一个简单的热备方案。 4-3、LVS + (Keepalived | Heartbeat) + (Nginx | Haproxy) ![]() 随着访问压力的增大,我们开始采用多层负载方案,在Nginx或者Haproxy的前段架设LVS服务,并通过Keepalived或者Heartbeat保证Keepalived的持续工作。 4-4、加如DNS轮询技术或者智能DNS路由技术 ![]() 5、负载均衡技术的其他运用 在这个系列的文章中,我们全在将用于客户端使用HTTP协议请求服务器端进行处理的情况,这里的客户端可以使最终用户,也可以是某个一第三方系统。但实际上负载均衡技术在信息处理领域内,不是只有这样的请求响应层才使用,在其它的技术领域也大量使用,这个小节,我们就来梳理这些技术,作为一个扩展话题。 5-1、关系型数据库系统的负载均衡 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |