万字长文浅谈三高系统建设方法论和实践
💡
原文中文,约9900字,阅读约需24分钟。
📝
内容提要
本文从后端研发的视角,结合多年实践,探讨了三高系统的建设方法论和实践。在高性能方面,通过读写优化提高系统性能;在高并发方面,通过扩展提高系统并发能力;在高可用方面,通过限流、熔断降级、超时设置、重试、隔离、兼容等方法保证系统可用性。介绍了存储层的复制和分片技术以及部署层的容灾架构演进。
🎯
关键要点
- 软件复杂性分为技术复杂性和业务复杂性,三高系统建设方法论主要从后端研发视角探讨。
- 高性能是三高系统的核心,通过读写优化提高系统性能,影响性能的因素包括计算、通信和存储。
- 读多写少的系统采用同步更新数据库,后删除缓存;写多读少的系统采用同步更新缓存,异步更新数据库。
- 在秒杀场景下,通过异步处理和消息队列来提高接单接口的性能。
- 高并发通过单机性能优化和集群扩展来提高,集群扩展包括水平扩展、纵向扩展和垂直扩展。
- 水平扩展是通过增加机器和扩分片来应对流量,纵向扩展是通过微服务架构进行领域划分。
- 垂直扩展通过分库分表来增加数据库的访问连接数,避免数据库成为瓶颈。
- 高可用性通过限流、熔断降级、超时设置、重试、隔离和兼容等方法来保证。
- 限流策略可以防止系统被激增流量打垮,熔断和降级结合使用以保护系统。
- 超时设置可以避免无限等待下游依赖系统,重试机制需控制次数以避免重试风暴。
- 隔离措施包括系统建设层面、环境隔离、数据隔离和核心/非核心流程隔离。
- 存储层通过复制和分片技术保证高可用,复制分为主从复制、多主复制和无主复制。
- 分片技术将数据分散到不同节点,避免单点故障,提高可用性和性能。
- 部署层通过多机房、多地域的容灾架构保证系统高可用,采用Docker容器化部署。
➡️