系统架构
概述
互联网系统面临怎样的挑战?目前针对互联网的架构,有三高,高并发高可用高性能。其中,高并发不同于另外两个词,高并发是因,指的是用户量大的场景,而高可用和高性能是果,指在应对高并发的场景下系统需要满足的条件。
互联网系统面临的挑战有:高并发、大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展(互联网系统基本是通过运营慢慢发展起来的)。
应对高并发挑战的两个技术方向为:垂直伸缩和水平伸缩。其中,通过升级硬件和网络吞吐能力可以实现垂直伸缩,通过增加服务器提升计算能力可以实现水平伸缩。对比垂直伸缩和水平伸缩的优劣:垂直伸缩是最简单的短期伸缩方案,但缺点是费用高,有物理极限;水平伸缩是伸缩的圣杯,成本可控,且不会有极限。
互联网系统的演化
第一阶段:应用数据分离
第二阶段:使用缓存改善性能
第三阶段:使用集群改善并发处理能力
第四阶段:数据库读写分离
第五阶段:使用反向代理和CDN加速网站响应
第六阶段:使用分布式文件系统和分布式数据库
第七阶段:使用NoSQL和搜索引擎
第八阶段:业务拆分
第九阶段:微服务和中台化
架构模式
架构模式描述了不断重复发生的问题以及问题解决方案的核心。模式的关键在于可重复性,问题与场景的可重复性带来解决方案的可重复使用。
互联网架构模式分为:分层(将软件在横向进行切分),分割(将软件在纵向进行切分),分布式(多台服务器),集群(将分布式服务统一管理),缓存(加速),异步(解耦),冗余(服务器冗余,数据备份冗余等),自动化(运维自动化),安全。
互联网系统的核心要素
如何衡量一个系统的架构设计?
可以从以下方面进行衡量:高性能,高可用,可伸缩,可扩展,安全。
评论