xiaoyi's blog
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

xuexuguang

后端新秀
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 学习

  • GitHub技巧

  • 面试

    • 面试问题集锦
    • PHP基础
    • 正则表达式
    • PHP文件操作
    • PHP会话控制
    • 自定义函数及内置函数
    • MVC对比
    • linux
    • MySQL数据库基础
    • MySQL创建高性能的索引
    • MySQL的SQL优化
    • MySQL的高可扩展和高可用
    • MySQL安全
    • 常见算法
    • 常见数据结构
    • 高并发解决方案
    • 流量优化
    • 浏览器缓存和数据压缩
    • 图片优化
    • 静态化处理
    • 动态语言并发处理
    • 数据库缓存优化
    • 负载均衡
      • 七层负载均衡的实现
        • Nginx的负载均衡实现的优点是什么?
        • Nginx负载均衡的策略
      • 四层负载均衡的实现
      • 参考链接
  • 博客搭建

  • 心情杂货

  • 技术文档

  • 实用技巧

  • 友情链接
  • 更多
  • 面试
xuexuguang
2020-12-31

负载均衡

# 七层负载均衡的实现

基于URL等应用层信息的负载均衡,Nginx的Proxy是它一个很强大的功能,实现了7层负载均衡

# Nginx的负载均衡实现的优点是什么?

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

# Nginx负载均衡的策略

内置策略:IpHash、加权轮询 扩展策略: fair策略、通用hash、一致性hash

# 加权轮询

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

# IpHash策略

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

# fair策略

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

# 通用hash、一致性hash

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

# Nginx策略配置

http {
   upstream cluster {
       # 使用ip_hash
       ip_hash;
       # 指定weight使用权重进行轮询
       server srv1 weight=12;
       server srv2 weight=13;
       server srv3 weight=12;
   }
   
   server {
       listen 80;
       location / {
           proxy_pass http://cluster;
       }
   }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 四层负载均衡的实现

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

# 参考链接

  • LVS负载均衡实现
编辑
#高并发面试题
上次更新: 2020/12/31, 06:55:18
数据库缓存优化
解决百度无法收录搭建在GitHub上的个人博客的问题

← 数据库缓存优化 解决百度无法收录搭建在GitHub上的个人博客的问题→

最近更新
01
MVC对比
12-31
02
数据库缓存优化
12-31
03
动态语言并发处理
12-31
更多文章>
Theme by Vdoing | Copyright © 2020-2020 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式