负载均衡全面探究

What’s it 基本概念

先看wikipedia的定义:

  • In computing, load balancing improves the distribution of workloads across multiple computing resources, such as computers, a computer cluster, network links, central processing units, or disk drives. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any single resource.
  • Using multiple components with load balancing instead of a single component may increase reliability and availability through redundancy. Load balancing usually involves dedicated software or hardware, such as a multilayer switch or a Domain Name System server process.
  • 负载平衡是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件或者硬件来完成主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。

References

概述overview

负载均衡有硬件和软件两种, 软件LB一般分为两种: 基于DNS or 基于IP报文.
目前主流的软件负载均衡分为四层和七层
LVS属于四层负载均衡,工作在tcp/ip协议栈上,通过修改网络包的ip地址和端口来转发, 由于效率比七层高,一般放在架构的前端.
七层的负载均衡有nginx(engine x), haproxy, apache等, 工作在应用层,因此可以将HTTP请求等应用数据发送到具体的应用服务器,一般放在架构的后面位置,布置在应用服务器前面.

基本原理

几种负载均衡策略

  1. http重定向
  • web服务器通过http响应头信息中的Location标记来返回一个新的URL,http代理继续请求这个新的URL,完成自动跳转.
  • 需要权衡转移请求的开销和实际处理请求的开销. e.g. 很多下载站点就使用Location重定向.
    Http重定向
  1. DNS 负载均衡
  • DNS服务器并不能很好地完成工作量均衡分配;
  • 相比http重定向,基于DNS的负载均衡完全节省了所谓的主站点,或者说DNS服务器已经充当了主站点的职能; DNS服务器本身的性能几乎不用担心(DNS记录缓存), 也说是DNS不存在http的吞吐率限制,理论上可以无限增加实际服务器的数量.

DNS域名解析LB
3. 反向代理负载均衡

  • 几乎所有主流的Web服务器都热衷于支持基于反向代理的负载均衡。它的核心工作就是转发HTTP请求(Layer 7)
  • 任何对于实际服务器的HTTP请求都必须经过调度器
  • 调度器必须等待实际服务器的HTTP响应,并将它反馈给用户(前两种方式不需要经过调度反馈,是实际服务器直接发送给用户
    反向代理
    优点:
  • 调度策略丰富, e.g. weight(权重);
  • work on HTTP layer, require high-performance of concurrency;
  • 转发需要一定开销. e.g. 请求静态文件,更适合使用前面介绍的基于DNS的负载均衡方式
  • 反向代理服务器可以监控后端server, 调整均衡策略;
  • 粘滞session.
  1. IP负载均衡
  • 反向代理服务器工作在HTTP层,其本身的开销就已经严重制约了可扩展性,从而也限制了它的性能极限
  • NAT服务器:它工作在传输层,它可以修改发送来的IP数据包,将数据包的目标地址修改为实际服务器地址。
  • Linux2.6以后有LVS(Linux Virtual Server),命令行配置界面,快速实现负载均衡.
  • IP负载均衡
  • NAT集群 + DNS 也是一种选择.
  1. 直接路由 LVS-DR
  • 适合搭建可扩展的负载均衡系统,不论是Web服务器还是文件服务器,以及视频服务器,它都拥有出色的性能。前提是你必须购买一系列的合法IP地址
  • 工作在数据链路层。它修改数据包的目标MAC地址,并没有修改目标IP
  • 响应数据直接发给用户,实际服务器必须接入外网,而且不能将调度器作为默认网关,要给实际服务器添加和调度器IP地址相同的IP别名。

IP别名就是一张物理网卡上配置多个IP.

直接路由
6. IP 隧道 LVS-TUN

  • 转发机制:将调度器收到的IP数据包封装在一个新的IP数据包中,转交给实际服务器,然后实际服务器的响应数据包可以直接到达用户端。
  • 实际服务器也必须拥有合法的IP地址。
  • LVS-TUN可以将实际服务器根据需要部署在不同的地域,并且根据就近访问的原则来转移请求, CDN,所以有类似这种需求的,就应该选择LVS-TUN。
  • Contents Delivery Network is a geographically distributed network of proxy servers and their data centers
  • CDNs are a layer in the internet ecosystem. Content owners such as media companies and e-commerce vendors pay CDN operators to deliver their content to their end users. In turn, a CDN pays ISPs, carriers, and network operators for hosting its servers in their data centers.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值