服务高可用

可用性度量指标

年度可用性 = 可用时间/年度时间*100%

  • 2个9:基本可用,不可用时间小于88小时

  • 3个9:较高可用,不可用时间小于9小时

  • 4个9:具有自动恢复能力的高可用,不可用时间小于53分钟

  • 5个9:极高可用,不可用时间小于5分钟

服务类别

ser-arch
  • 接口层

    通过端口监听或者HTTP检测,HA proxy/Nginx等负载均衡组件检测接口层服务的健康状态,一旦发现检测异常,则把相应的服务从负载均衡的路由中屏蔽

  • 服务层

    系统内的服务调用,通用应用级别的服务发现和负载均衡组件来实现服务之间的调用,例如consul。

    通过服务检测组件,一旦发现某个服务不健康,则从列表中剔除

  • 数据层

    通过数据层的复制功能,把数据写入多个服务器,当某数据服务宕机 ,则把数据访问切换到备份数据的服务器上

服务层高可用实现

故障发现

指标监控

ser-check
  • 进程CPU

  • 进程内存

  • 进程磁盘IO

  • 进程健康状态指标

  • 服务间调用时延

  • 服务调用数据层时延

  • 服务内的RPC调用时延

故障处理

  • 隔离

  • 横向扩展

  • 负载均衡

  • 熔断

  • 限流

  • 重试

  • 超时设置

  • 异步调用

  • 降级

  • 幂等

数据层高可用

数据一致性级别

  • 数据强一致

    各个副本的数据在物理存储中总是一致的

  • 数据用户一致

    各个副本数据可能是不一致的,但当用户访问时,通过纠错和校验机制,可以确定一个一致和正确的数据返回给用户

  • 数据最终一致

    系统经过一段时间,数据会达成最终一致

Mysql数据库高可用

冗余

ser-sync
ser-mysql-sync-type
MGR方案
ser-mysql-mgr
  • 防止脑裂

  • 可飘逸资源

ser-mysql-proxy

通过引入router,可以实现当master结点失效,把原来的客户端连接转到新的master上

流量控制

  • 通过对业务进行IP隔离,API隔离,用户隔离,进行细粒度的限流熔断措施

Redis高可用

  • sentinel

  • redis cluster

MQ高可用

  • 主从镜像模式

发布

  • 自动化测试

  • 压力测试

  • 灰度发布

  • 回滚机制

ref

https://blog.csdn.net/w2064004678/article/details/84747863 https://www.jianshu.com/p/c8a28bd954b0 https://www.sohu.com/a/135752858_639793 https://cloud.tencent.com/developer/article/1360529 https://zhuanlan.zhihu.com/p/354588457 https://zhuanlan.zhihu.com/p/88398621 https://zhuanlan.zhihu.com/p/91488488 https://www.cnblogs.com/linjiqin/p/9678022.html

你可能感兴趣的:(服务高可用)