自顶向下看互联网”三高“

高并发

横向扩展

加机器,加配置

缓存

  • 本地缓存
  • 分布式缓存
  • 集中式缓存
  • CPU缓存
  • 操作系统缓存
  • HTTP缓存
  • 数据库缓存
  • 缓存一致性

异步

  • 分布式消息队列
  • 本地消息队列
  • 线程异步回调
  • NIO/AIO

高性能

增加并行计算能力

  • 加机器,加配置
  • 线程池
  • http连接池
  • 多路复用
  • 锁降级
  • 并行I/O

减小单次任务响应时间

  • 缓存
  • 时间复杂度
  • 池化
  • 锁降级
  • 线程预热
  • 长连接

高可用

故障转移

  • 对等节点

所有节点承担读写,且节点内部无状态。节点失败,无影响。

  • 非对等节点

基于分布式选举算法进行协同作业的主从备节点集群;基于分布式一致性算法进行存储的节点集群。”心跳检测机制”触发选举操作。

超时控制

不限制的让请求持续等待或占用资源,会导致流量挤压,引起雪崩似的超时。所以超时控制是一种”舍小家为大家”策略,体现的是牺牲少量请求,保证系统整体可用性的智慧。常用措施:同步自定义超时打断机制,异步wait/notify机制和利用future和countdonwlatch等关键字。

流量控制

超时控制是在请求处理阶段采取的截断措施,而流量控制则是在请求进入阶段根据系统负载利用qps指标进行拦截的措施。常用算法:漏桶算法和令牌桶算法。

降级管理

降级是为了保证核心服务稳定而牺牲边缘服务的做法,是一种”舍卒保车”策略。

熔断机制

熔断机制是一种快速失败的实现方案,在下游服务故障时利用快速失败机制降低对整体系统性能的影响。

重试机制

重试是一种保障业务运行的容错补偿机制。包含:同步有限次重试,异步跑批重试。

幂等

幂等是支持重试机制的重要手段。常用措施:全局唯一id,锁(悲观锁乐观锁)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享