• 【高可用】互联网架构


    参考:https://blog.csdn.net/weixin_41385912/article/details/122817029

    高可用(High availability,即 HA)的主要目的是为了保障「业务的连续性」,即在用户眼里,业务永远是正常(或者说基本正常)对外提供服务的。高可用主要是针对架构而言,那么要做好高可用,就要首先设计好架构,第一步我们一般会采用分层的思想将一个庞大的 IT 系统拆分成为应用层,中间件,数据存储层等独立的层,每一层再拆分成为更细粒度的组件,第二步就是让每个组件对外提供服务,毕竟每个组件都不是孤立存在的,都需要互相协作,对外提供服务才有意义。

    要保证架构的高可用,就要保证架构中所有组件以及其对外暴露服务都要做高可用设计,任何一个组件或其服务没做高可用,都意味着系统存在风险。

    互联网部署架构

       

     接入层:    主要由 F5 硬件或 LVS 软件来承载所有的流量入口

    反向代理层:  Nginx,主要负责根据 url 来分发流量,限流等

    网关:     主要负责流控,风控,协议转换等

    站点层:    主要负责调用会员,促销等基本服务来装配 json 等数据并返回给客户端

    基础 service:   其实与站点层都属于微服务,是平级关系,只不过基础 service 属于基础设施,能被上层的各个业务层 server 调用而已

    存储层:    也就是 DB,如 MySQL,Oracle 等,一般由基础 service 调用返回给站点层

    中间件:    ZK,ES,Redis,MQ 等,主要起到加速访问数据等功能,在下文中我们会简单介绍下各个组件的作用

    接入层:

      

     只有 master 在工作(即此时的 VIP 在 master 上生效),另外一个 backup 在 master 宕机之后会接管 master 的工作,

    在主备机器上都装上 keepalived 软件,启动后就会通过心跳检测彼此的健康状况,一旦  master 宕机,keepalived 会检测到,从而 backup 自动转成 master 对外提供服务,此时 VIP 地址(即图中的 115.204.94.139)即在 backup 上生效,也就是我们常说的「IP漂移」,通过这样的方式即解决了 LVS 的高可用。

    keepalived 的心跳检测主要通过发送 ICMP 报文,或者利用 TCP 的端口连接和扫描检测来检测的,同样的,它也可以用来检测 Nginx 暴露的端口,这样的话如果某些 Nginx 不正常 Keepalived 也能检测到并将其从 LVS 能转发的服务列表中剔出。

  • 相关阅读:
    洛谷P2336 喵星球上的点名
    脚本的含义,什么是脚本应用场景
    redis 事务
    redis缓存
    小程序跳转到另一个小程序
    laravel安装Excel安装不上
    小程序模板中data传值有无...
    thinkphp5.0写的项目放到服务器上 lnmp 404
    使用xshell远程连接
    小程序中this和that用法
  • 原文地址:https://www.cnblogs.com/clarino/p/15902539.html
Copyright © 2020-2023  润新知