系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。
知识串讲
- 早期单机系统的两个问题:性能瓶颈、耦合问题
- 解决性能问题早期最佳的方式是实施三大分离的伪分布式:动静分离、读写分离、前后台分离
- 解决耦合问题的方法是进行业务的垂直拆分,变为独立的子系统
- 如何实现子系统的高可用,引入反向代理,实现子系统的真正集群
- 引入反向代理之后,就多了反向代理的负载均衡和高可用问题
- 反向代理的负载均衡策略:random、轮询、一致性hash,四层和七层抓手
- 反向代理层的高可用:“影子主”模式,虚IP + Keepalived
- 在反向代理之前如何实现子系统的集群:DNS轮询,早期的DNS轮询无法完全的高可用
- 反向代理层(如nginx)出现瓶颈时可以引入操作系统层面的lvs,硬件层面的F5来实现多级反向代理,这是一个scale-up的方案;在此基础上使用DNS轮询可以实现理论上无限扩容的scale-out方案,且此时引入的DNS轮询是高可用的
- 子系统集群之后会引发session一致性问题,解决方法常有:session同步、客户端保存、反向代理层来进行hash之后转发、后端统一存储(其中三、四使用较为广泛)
- 静态资源访问加速方案:CDN

这篇博客总结了在处理百万流量时的关键架构技术,包括通过动静分离、读写分离、前后台分离解决性能瓶颈,采用反向代理实现子系统集群和高可用,探讨反向代理的负载均衡策略,以及处理session一致性问题的常见方案。此外,还提到了静态资源的CDN加速和未来将涉及的服务化、缓存和数据库拆分等架构实践。
最低0.47元/天 解锁文章
424





