设计高可用和高并发

《亿级流量网站架构核心技术》读书笔记

主要讲解高可用,高并发

高可用

  • 负载均衡
       负载均衡算法
       失败重试机制
       健康检查机制
       动态负载均衡
  • 限流
       限流算法
       应用级限流
       分布式限流
       接入层限流 
  • 降级
       降级预案
       自动降级/开关降级
       读服务/写服务降级
       多级降级
       配置中心
       使用Hystrix降级
       使用Hystrix熔断
  • 隔离
    进程线程隔离
    集群/机房隔离
    读写隔离
    动静隔离
    爬虫/热点隔离
    使用Hystrix隔离
    基于Servlet3的请求隔离
  • 超时与重试
    代理层超时和重试
    web容器超时
    中间件客户端超时与重试
    数据库客户端超时
    NoSQL客户端超时
    业务超时
    前端ajax超时
  • 回滚
    事物回滚
    代码库回滚
    部署版本回滚
    数据版本回滚
    静态资源回滚
  • 压测与预案
      系统压测
              压测方案:压测接口/并发量/压测策略/压测指标
              压测报告:机器负载/QPS/响应时间/成功率
              压测方式:线下/线上压测
              读写/仿真/引流/隔离集群/缩容压测
              单机/集群/离散/全链路压测
      系统优化与容灾
             单机调优
             架构优化/系统扩容
             跨机房容灾
     应急预案
             网络接入层(DNS/LVS/HaProxy)
             应用接入层(Nginx/OpenResty)
             web应用层(Tomcat)
             服务层(Dubbo)
             数据层(Redis/DB)   
     监控报警
             服务器监控/系统监控/JVM监控/接口监控
             报警策略:监控时间段,报警阀值,通知方式
     

高并发

  • 应用级缓存
    缓存回收策略:空间/容量/时间
    缓存回收算法:FIFO/LRU/LFU
    java堆/java堆外/磁盘缓存
    Guava/Ehcache/MapDB
    缓存使用模式Cache-Aside/Cache-As-SoR/CopyPattern
  • http缓存
    浏览器缓存
    HttpClient客户端缓存
    Nginx代理层缓存
  • 多级缓存
    分布式缓存
    热点数据与更新缓存
    缓存崩溃与快速修复
  • 池化
    数据库连接池
    HttpClient连接池
    线程池
  • 异步并发
    同步阻塞调用
    异步Future
    异步Callback
    异步编排CompletableFuture
    请求缓存
    请求合并
  • 扩容
    单体应用垂直扩容
    单体应用水平扩容
    应用拆分
    数据库拆分: 水平/垂直拆分
    使用sharding-jdbc分库分表/读写分离
    数据异构
    任务系统扩容(Elastic-Job)
  • 队列
    异步处理/系统解耦,数据同步/流量削峰
    缓冲队列/任务队列/消息队列,请求队列/数据总线队列
    Disruptor+Redis队列
    基于Canal实现数据异构

 

posted @ 2019-08-19 23:27  wujinfeng  阅读(317)  评论(0编辑  收藏  举报