课程升级

  • Nginx反向代理
  • 高可用集群
  • 负载均衡

    单体架构的优点

  • 小团队成型即可完成开发-测试-上线

  • 迭代周期短,速度快
  • 打包方便,运维省事

    单体架构面临的挑战

  • 单节点宕机造成所有服务不可用

    • 集群
  • 耦合度太高(迭代、测试、部署)
    • 分布式或者微服务
  • 单节点并发能力有限

    集群概念

  • 计算机“群体”构成整个系统

  • 这个“群体”构成一个整体,不能独立存在
  • “人多力量大”,群体提升并发与可用性

    集群

    image.png
    image.png

    使用集群的优势

  • 提高系统性能

  • 提高系统可用性
  • 可扩展性高

    使用集群的注意点

  • 用户会话

  • 定时任务
  • 内网互通

    什么是Nginx

  • Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务

  • 主要功能反向代理
  • 通过配置文件可以实现集群和负载均衡
  • 静态资源虚拟化

image.png
常见的服务器

  • MS ⅡS
    • asp.net
  • Weblogic、Jboss
    • 传统行业 ERP/物流/电信/金融
  • Tomcat、Jetty
    • J2EE
  • Apache、Nginx
    • Apache在超过百万的并发以后,性能会逐渐的下降
    • Nginx成本更低
    • 静态服务、反向代理
  • Netty

    • 高性能服务器编程

      什么是反向代理

  • 用户请求目标服务器,由代理服务器决定访问哪个IP

image.png

什么是正向代理

  • 客户端请求目标服务器之间的一个代理服务器
  • 请求会先经过代理服务器,然后再转发请求到目标服务器,获得内容后最后响应给客户端

image.png

反向代理之路由

image.png

Nginx的进程模型

  • master进程:主进程
  • worker进程:工作进程

image.png

Worker抢占机制

image.png

传统服务器事件处理

image.png
image.png

Nginx事件处理

image.png

同步异步、阻塞非阻塞

  • 同步阻塞
    • BIO
    • 客户端发送请求给服务器,这个时候服务器处理任务的时间比较久。对客户端来说,被服务端给阻塞了,所以客户端会一直等待服务端的响应,此时,客户端不能够去处理其他的任何事情,服务端也不会接收其他客户端的请求。
  • 同步非阻塞
    • NIO
    • 客户端发送请求给服务端,服务端处理任务的时间会很久,虽然客户端会一直等待响应,但是服务端它是可以处理其他的请求,过一会再回来处理原先的。
  • 异步阻塞

  • 异步非阻塞
    • AIO

      nginx.conf 配置结构

      image.png

      Nginx的模块体系

      image.png

      单节点

      集群

      Nginx集群负载均衡

      四层负载均衡

      七层负载均衡

      DNS地域负载均衡

      构建集群

      负载均衡

      轮询

      加权轮询

      ip_hash

      一致性hash算法
      url-hash