加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

负载均衡层设计方案之负载均衡技术总结篇

发布时间:2019-09-27 22:05:56 所属栏目:建站 来源:Java高级互联网架构
导读:1、概述 通过前面文章的介绍,并不能覆盖负载均衡层的所有技术,但是可以作为一个引子,告诉各位读者一个学习和使用负载均衡技术的思路。虽然后面我们将转向业务层和业务通信层的介绍,但是对负载均衡层的介绍也不会停止。在后续的时间我们将穿插进行负载

我们试想一下,如果将我们要访问的资源放到离我们客户端最近的一个服务上(例如在广州的客户端访问的资源就在广州的机房)。那么是不是就解决了这个问题(这个点称为“边缘节点”)。这就是CDN网络解决的问题,如下图所示:

架构设计:负载均衡层设计方案之负载均衡技术总结篇

目前CDN服务不需要我们进行开发,市面上有很多公司都提供免费的/付费的 CDN服务。当然如果您想自行搭建CDN网络,可以参考以下技术方案:

Squid:Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。目前,国内很多CDN服务商的网络都是基于Squid搭建的

利用Nginx的proxy_cache搭建:Nginx中的rewrite技术实际上就可以实现URL请求重写,实现请求转发。而Nginx中的proxy_cache组件可以使得从远端请求的源数据保存在本地,从而实现一个CDN网络的搭建。

自己写: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的持续工作。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读