设计高并发方案有哪些套路?

如何设计高并发方案

1.减少单次请求时间

如何减少单次请求时间?

  • 代码优化
  • 算法优化
  • 业务流程优化
  • 使用缓存
    • 本地缓存
    • 分布式缓存
    • 客户端缓存
    • CDN (如:可用性、性能、监控、多CDN、动态调度)

2.有效使用更多资源

如何有效使用更多的资源?

  • 分库分表,读写分离
  • 应用拆分
  • 服务拆分
  • 分布式服务
    • 2PC: 二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。
    • 3PC: 三阶段提交又称3PC,其在两阶段提交的基础上增加了CanCommit阶段,并引入了超时机制。一旦事务参与者迟迟没有收到协调者的Commit请求,就会自动进行本地commit,这样相对有效地解决了协调者单点故障的问题。
    • TCC: TCC(Try-Confirm-Cancel)又称补偿事务。其核心思想是:"针对每个操作都要注册一个与其对应的确认和补偿(撤销操作)"。
    • 基于本地消息表
    • 基于消息队列

解决高并发问题有哪些方法?

难点

  • 复杂
  • 涉及多方面知识
  • 偶发

方法

  • 自上而下:从现象和代码推演原因
  • 工具: 日志、监控、tcpcopy 构建立体化全链路监控

  • 自下而上:从原理推演原因

  • 工具:系统工具、语言工具 Linux性能测试工具

如何提升解决高并发问题的能力

  • 夯实基础
  • 多参与、多分析
  • 多思考,多总结

REF