高并发大流量专题---11、Web服务器的负载均衡

一、总结

一句话总结:

推荐使用nginx七层(应用层)负载均衡的实现:配置那是相当的简单
  1. http{
  2. upstream cluster{
  3. server srv1
  4. server srv2
  5. server srv3
  6. }
  7. server{
  8. listen 80
  9. location /{
  10. proxy_pass http://cluster;#调用上面的upstream cluster中的内容
  11. }
  12. }
  13. }

1、七层(应用层)负载均衡介绍及如何实现?

七层表示的是应用层:七层(应用层)负载均衡是 基于URL等应用层信息的负载均衡
Nginx的proxy:Nginx的proxy是它一个很强大的功能,实现了7层负载均衡

2、七层(应用层)负载均衡的 优点?

配置简单灵活;功能强大,性能卓越,运行稳定
能够自动剔除工作不正常的后端服务器
上传文件使用异步模式
支持多种分配策略,可以分配权重,分配方式灵活

3、Nginx负载均衡 策略?

内置策略:IP Hash、加权轮询:安装nginx的时候已经打到内核中
扩展策略:fair策略、通用hash、一致性hash:需要我们自己安装扩展

4、Nginx负载均衡内置策略中的 加权轮询策略 是怎样的?

给高权重的机器:首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器
清理down掉的机器:当所有后端机器都down掉时,Nginx会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处在timeout的状态

5、Nginx负载均衡内置策略中的 IP Hash策略 是怎样的?

和轮询策略很像:Nginx内置的另一个负载均衡的策略,流程和轮询很类似,只是其中的算法和具体的策略有些变化
变相的轮询算法:IP Hash算法是一种变相的轮询算法

6、Nginx负载均衡扩展策略中的 fair策略 是怎样的?

根据【后端服务器的响应时间】判断负载情况,从中选出负载最轻的机器进行分流

7、Nginx负载均衡扩展策略中的 通用Hash、一致性Hash策略 是怎样的?

通用hash比较简单,可以【以Nginx内置的变量为key进行hash】
一致性hash采用了【Nginx内置的一致性hash环】,支持memcache

8、七层负载均衡的实现Nginx配置 启示?

|||-begin

  1. http{
  2. upstream cluster{
  3. server srv1
  4. server srv2
  5. server srv3
  6. }
  7. server{
  8. listen 80
  9. location /{
  10. proxy_pass http://cluster;#调用上面的upstream cluster中的内容
  11. }
  12. }
  13. }

|||-end

推荐使用nginx七层(应用层)负载均衡的实现:配置那是相当的简单

9、四层负载均衡如何实现?

目标地址和端口+服务器选择方式:通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器
NAT,DR和TUN:LVS实现服务器集群负载均衡有三种方式,NAT,DR和TUN

二、内容在总结中

 

高并发大流量专题---11、Web服务器的负载均衡的更多相关文章

  1. 高并发大流量专题---10、MySQL数据库层的优化

    高并发大流量专题---10.MySQL数据库层的优化 一.总结 一句话总结: mysql先考虑做分布式缓存,过了缓存后就做mysql数据库层面的优化 1.mysql数据库层的优化的前面一层是什么? 数 ...

  2. 高并发大流量专题---5、CDN加速

    高并发大流量专题---5.CDN加速 一.总结 一句话总结: CDN就是多整几台节点服务器,选距离用户最近的服务器来给用户服务,实现的话可以用阿里云.腾讯云他们提供的功能,简单方便,妈妈再也不用担心我 ...

  3. 高并发大流量专题---3、前端优化(减少HTTP请求次数)

    高并发大流量专题---3.前端优化(减少HTTP请求次数) 一.总结 一句话总结: 图片地图:使用<map><area></area></map>标签. ...

  4. nodejs高并发大流量的设计实现,控制并发的三种方法

    nodejs高并发大流量的设计实现,控制并发的三种方法eventproxy.async.mapLimit.async.queue控制并发Node.js是建立在Google V8 JavaScript引 ...

  5. web服务器-nginx负载均衡

    web服务器-nginx负载均衡 一 负载均衡的作用 负载均衡: 分摊到多个操作单元上进行执行,和它的英文名称很匹配.就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整 ...

  6. Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关

    什么是Jexus Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,以支持ASP.NET.ASP.NET CORE.PHP为特色,同时具备反向代理.入侵检测等重要功能.可以这样说,J ...

  7. 【高并发解决方案】8、Nginx/LVS/HAProxy负载均衡软件的优缺点详解

    PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...

  8. QPS 提升60%,揭秘阿里巴巴轻量级开源 Web 服务器 Tengine 负载均衡算法

    前言 在阿里七层流量入口接入层(Application Gateway)场景下, Nginx 官方的Smooth Weighted Round-Robin( SWRR )负载均衡算法已经无法再完美施展 ...

  9. 2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离

    技巧提示:mysql读写分离搭建好之后,配合nginx的负载均衡,可以高效的mysql的集群性能,同时免去麻烦的query分流.比如,sever1收到的请求就专门链接slave1从mysql读取数据, ...

随机推荐

  1. Vue过渡:CSS过渡

    一 项目结构 二 App.vue <template> <div id="app"> <transition name="fade" ...

  2. sql 为什么要用where 1=1?

    之前一直不太明白,sql语句里为什么要写where 1=1 提升某种执行效率? 其实,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以. 这个1=1常用于应用程序根据用 ...

  3. upc组队赛18 THE WORLD【时间模拟】

    THE WORLD 题目链接 题目描述 The World can indicate world travel, particularly on a large scale. You mau be l ...

  4. MySQL 查询语句--------------进阶9:联合查询

    #进阶9:联合查询 /* union 联合 合并:将多条查询语句的结果合并成一个结果 语法: 查询语句1 union 查询语句2 union..... 应用场景:要查询的结果来自于多个表,且多个表没有 ...

  5. JavaScript实现的发布/订阅(Pub/Sub)模式

    JavaScript实现的发布/订阅(Pub/Sub)模式 时间 2016-05-02 18:47:58  GiantMing's blog 原文  http://giantming.net/java ...

  6. 批量调整word 图片大小

    打开文档后,按Alt+F11,在左边Porject下找到ThisDocument,右键插入模块,贴上下面的 Sub Macro()For Each iShape In ActiveDocument.I ...

  7. python爬取企业登记业务

    import requests from lxml import etree import csv for i in range(10, 990, 10): url = "http://12 ...

  8. Linux远程软件xshell的使用

    Xshell是一个linux远程命令行软件 有免费版不用破解,安装包可以找有关人士获取 要新远程一台机,可以新建会话,输入被远程系统的参数 新建会话后,点连接开始远程 远程成功的样子

  9. bzoj1897. tank 坦克游戏(决策单调性分治)

    题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...

  10. spring boot整合redis多实例

    最近项目中遇到需要连接两个redis实例的情况,于是就在spring boot原先的基础上修改了一点. 首先,添加所需的依赖 <dependency> <groupId>org ...