Skip to main content Link Menu Expand (external link) Document Search Copy Copied

架构师-第二阶段:接入层架构

1、反向代理与接入层扩容

  • 用什么做反向代理?
    • 软件层面:nginx/apache
    • 操作系统层面:LVS
    • 硬件:F5
  • 反向代理解决什么问题?
    • 子 web系统的性能,不再受到单台机器资源限制,可以扩展
    • 子 web系统,实现了高可用(由原来的伪集群,变成了高可用的真集群)
  • 反向代理,如何实施负载均衡
    • 负载均衡方法:随机、轮询、静态权重轮询、动态权重轮询、一致性哈希
    • 负载均衡抓手:四层(转发/交换),七层(转发/交换)
  • 反向代理如何包装高可用

    2、DNS轮询,接入层架构演进

  • 什么是 dns 轮询(每次解析到不同的 ip)
  • DNS轮询的不足
    • 非高可用
    • 扩容不是实时的,因为解析需要时间
    • 暴露太多外网 ip,安全性受到影响
  • 多层高可用反向代理
  • 多层高可用反向代理+DNS 轮询,可以达到更大的处理能力

3、session一致性,N种架构方案

  • 反向代理架构,保证高可用的同时,如何保证 session路由的一致性呢?
    • 方案一:session 同步法,每个 webserver 之间同步 session,但是这个方法会急剧影响性能
    • 客户端存储法:webserver 不需要存储 session,每次请求会携带 session,存在 cookie 限制和安全风险
    • 反向代理 hash 一致性
    • 后端统一存储法,放在 redis 里是最好的方法,可以提高吞吐量

4、CDN如何实现就近访问

  • 什么是 CDN(Content Delivery Network)?请访问CDN
  • 就近访问,是通过“智能DNS”来实现的
  • 如何解决数据冗余版本不同的问题?使用版本号

5、TCP接入,架构设计

  • 客户端+webserver(get-tcp-ip)+tcp集群,webserver 拉取 tcp 集群可用性,并返回可用的 ip 地址
  • 总结

萌ICP备20240168号