Linux 负载均衡介绍之LB

负载均衡

(Load Balance)让负载均衡,当然这是一个简单的概括,比如,我有10台机器都提供web服务,那么我如何均衡的利用这10台机器呢,让这10台机器保证高性能、高可用、高并发就是负载均衡要考虑和要做的事情。

实现负载均衡一般可以使用顺序、比重、流量、服务类别等进行分配,负载均衡的部署方式也分为路由和服务直接返回模式

负载均衡的主要方式

1、http重定向

 原理:下载网站用的较多,其实也算一种负载均衡,工作在应用层的业务代码中原理:根据用户的http请求计算出一个真实的web服务器地址,并将该web服务器地址写入http重定向响应中返回给浏览器,由浏览器重新进行访问。

图示:

优缺点:
优点:比较简单
缺点:
1.浏览器需要零次请求服务器才能完成一次访问,性能较差。
2.http重定向服务器自身的处理能力可能成为瓶颈。
3.使用http302响应重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。

2.DNS负载均衡

原理:
DNS负载提供域名到IP解析的过程,我们实例查看百度的域名解析其实是一对多的,这时候DNS服务器也就充当了负载均衡,很多域名运营商提供的智能dns以及多线解析都是利用了DNS负载均衡的技术,开源的BIND就可提供电信联通多线解析等强大的技术。
原理:在DNS服务器上配置多个域名对应IP的记录。例如一个域名www.baidu.com对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。
图示:


优缺点:
优点:
将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度吗,改善性能。

缺点:
1.目前的DNS解析是多级解析,每一级DNS都可能化缓存记录A,当摸一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。
2.DNS负载均衡的控制权在域名服务商手里,网站可能无法做出过多的改善和管理。
3.不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。
4.可能会造成额外的网络问题。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

反向代理负载均衡

原理:
nginx,squid
原理:
反向代理处于web服务器这边,反向代理服务器提供负载均衡的功能,同时管理一组web服务器,它根据负载均衡算法将请求的浏览器访问转发到不同的web服务器处理,处理结果经过反向服务器返回给浏览器。
例如:浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求,经过负载均衡算法后得到一个真实物理地址10.0.0.3,并将请求结果发给真实服务器,真实服务器处理完后通过反向代理服务器返回给请求用户。

图示:

优缺点:
优点:
部署简单,处于http协议层面。
缺点:使用了反向代理服务器后,web 服务器地址不能直接暴露在外,因此web服务器不需要使用外部IP地址,而反向代理服务作为沟通桥梁就需要配置双网卡、外部内部两套IP地址。

IP负载均衡

原理:
lvs-nat
在网络层通过修改目标地址进行负载均衡。
用户访问请求到达负载均衡服务器,负载均衡服务器在操作系统内核进程获取网络数据包,根据算法得到一台真实服务器地址,然后将用户请求的目标地址修改成该真实服务器地址,数据处理完后返回给负载均衡服务器,负载均衡服务器收到响应后将自身的地址修改成原用户访问地址后再讲数据返回回去。类似于反向服务器负载均衡。
图示:

优缺点:
优点:在响应请求时速度较反向服务器负载均衡要快。

缺点:当请求数据较大(大型视频或文件)时,速度较慢。

数据链路层负载均衡

原理:
LVS-DR
1.在数据链路层修改Mac地址进行负载均衡。
2.负载均衡服务器的IP和它所管理的web 服务群的虚拟IP一致;
3.负载均衡数据分发过程中不修改访问地址的IP地址,而是修改Mac地址;
4.通过这两点达到不修改数据包的原地址和目标地址就可以进行正常的访问。

图示:

优缺点:
优点:
1.不需要负载均衡服务器进行IP地址的转换。
2.数据响应时,不需要经过负载均衡服务器。
缺点:负载均衡服务器的网卡带宽要求较高。

四层负载和七层负载

所谓四层就是基于IP+端口的负载均衡,主要代表有lvs。

七层负载也称内容交换,就是基于URL等应用层信息的负载均衡,主要代表有nginx。

图示:

关于代理

负载均衡&代理
负载均衡也叫代理,是代理的一种。
代理
1、正向代理
只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中,正向代理指的是客户端代理,是由用户控制并知晓的代理方式,如我不能访问fb,然后使用了某国外服务器作为跳板机,最后成功访问了就是正向代理。
2、反向代理
指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器,反向代理指的是服务端代理,在大型网站背后并不是只有一台机器提供服务,比如我访问微博,微博的某一个反向代理服务器将我解析到内部服务器的一台机器,然后这台机器给我提供微博的消息(当然实际情况比这个复杂的多),这些对于用户都是不可见的,我们只会感觉只有一台机器与我交互。

Linux 负载均衡介绍之LB介绍相关推荐

  1. 负载均衡SLB新功能介绍

    摘要: 随着网络的各个核心部分业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担.通过负载均衡扩展现有网络设备和服务器的带宽.增加吞吐量.加强 ...

  2. Linux负载均衡软件LVS

    Linux负载均衡软件LVS之三(配置篇) LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式 ...

  3. Linux负载均衡软件LVS(概念篇)

    Linux负载均衡软件lvs(概念篇) 一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,它的官方站点是(www ...

  4. linux负载均衡(什么是负载均衡)

    linux负载均衡(什么是负载均衡) 一.总结 一句话总结: 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  5. 【Linux负载均衡】

    Linux负载均衡 核心结构体 核心函数 load_balance fair.c 核心数据结构 调用核心函数1 should_we_balance() 核心数据结构 核心辅助函数 核心函数 核心调用函 ...

  6. LVS 负载均衡集群详细介绍

    目录 0 前言 1 什么是 LVS? 3 为什么要用 LVS? 4 LVS 的组成及作用 5 负载均衡的由来及所带来的好处 6 LVS 负载均衡集群的类型 7 DNS / 软硬件负载均衡的类型 8 L ...

  7. 负载均衡:nginx+LVS介绍

    一.nginx(engine x)原理 角色: 分发器 任务: 接受请求.分发请求.响应请求. 功能模块:   1)ngx_http_upstream_module:基于应用层(七层)分发模块   2 ...

  8. LVS负载均衡之持久性连接介绍(session篇)

    在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到 ...

  9. Nginx负载均衡策略之fair介绍

    fair fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小.加载时间长短智能的进行负载均衡.那么如何使用第三方模块的fair负载均衡策略. upstream backend{f ...

最新文章

  1. 年年英雄会,岁岁侠客行
  2. linux删除网卡bond,linux下网卡bond的基本配置及错误
  3. Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源
  4. 写给程序员的有效学习方法
  5. python打飞机源码_python 飞机大战 游戏源码(pygame入门级)
  6. CSS3 :nth-child() ,nth-of-type(),nth-last-child() ,nth-last-of-type()
  7. .net 有哪些主流的设计模式_「设计模式自习室」门面模式 Facade Pattern
  8. 读书笔记——数据库系统概论
  9. 简书吐槽大会|山东被曝大量不合格疫苗
  10. android 修改imei源码,Android 修改imei、gps等信息分析
  11. 80端口有什么用,80端口被禁用怎么解决
  12. 程序员的app软件开发经验
  13. NewCoder:买苹果
  14. [日推荐] 『KORJO母爱小空间』妈妈带宝宝出门再也不用愁啦!
  15. 玩游戏使用云服务器,云服务器可以玩大型游戏吗?
  16. 51Nod-1526-分配笔名
  17. 模糊数学Fuzzy Set第1讲——Classic Fuzzy Set: Theory and Applications
  18. Unity获取摄像头权限
  19. C0216:输入矩形的长和宽,输出周长和面积
  20. 登陆 or 登录 ?

热门文章

  1. 著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到: 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
  2. 新氧云原生全栈数仓最佳实践
  3. 新氧打出精细化运营组合拳 激活医美发展新动力
  4. Access转出到Mysql,咱自己动手丰衣足食.. -- 纯JS代码
  5. 破解IT公司高管频繁离职的密码
  6. autojs之四史答题2.0(加ui)
  7. spring boot初始化完成时(两种方式)执行某种操作
  8. bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)
  9. LINUX基础 第四次课 10月15日
  10. 国内外差价悬殊,催火“代购一族”