架构师 3 期 3 班 -week4- 总结
互联网应用面对的问题
* 高并发,大流量
* 高可用
* 海量数据存储
* 网络环境复杂
* 安全性
* 快速的需求迭代
应对高并发的2种解决思路
* 垂直伸缩:服务器的性能提升(硬件);缺点:资金成本、物理极限
* 水平伸缩:服务器的数量提升;缺点:软件开发成本
互联网架构演化
单体应用(应用服务器、数据库、文件服务器等放在同一台机器上)
应用与数据分离(应用服务器、数据库、文件服务器分别单独部署)
增加缓存改善系统性能(硬盘存储遇到瓶颈,通过缓存来减少硬盘的读写)
使用集群改善并发性能(通过增加服务器减轻单台服务器的压力)
数据库的读写分离(通过主从的读写分离,提高数据库的读性能)
CDN加速(通过运营商提供的缓存静态资源,减少服务器请求压力)
分布式的存储系统(使用分片的思想,提高存储系统的并发写)
NoSQL与搜索引擎(通过非关系型数据库提高复杂查询的性能)
业务拆分(根据业务拆分系统,提高代码的可维护性)
微服务(将可服用的服务器拆分成微服务供业务系统调用)
大数据与智能化(通过用户行为,给出用户关注的内容)
架构模式
分层
将系统横向的分成几个部分,每个部分负责单一的职责,然后通过上层依赖下层完成系统的业务流程。
如:视图层(静态资源)、应用层(给客户端提供api)、核心业务层(提供核心业务,供应用层组合使用)、基础服务层(提供公用服务)、存储层(数据的持久化)等
分割
将系统纵向拆分,按业务/职责拆分系统,提供系统的可维护性和并发能力
集群
将同样功能的服务部署多份,提高并发能力,解决单点问题
缓存
是将数据存储到“离用户更近的地方”,以提高响应效率,减少耗时的重复操作。
注: 离用户更近的地方并非单指物理上的距离,而是用内存代替磁盘提高访问数度、用cdn 缓存减少网络路径等
CDN
反向代理
本地缓存
远程缓存
从效果上:CDN > 反向代理 > 本地缓存 > 远程缓存
异步
解耦、提高吞吐量、提高系统可用性
冗余
为系统提高一部分冗余,提高系统的可用性
自动化
提高可维护性,避免人为操作造成的错误
安全
提供加密、认证等手段提高安全性
互联网架构的核心元素
高性能
主要手段:缓存、异步
高可用
主要手段:集群、冗余、限流、熔断(降级)
可伸缩
动态扩容/缩容
可扩展
主要手段:事件驱动、分布式部署
安全性
隔离、认证、加解密
版权声明: 本文为 InfoQ 作者【zbest】的原创文章。
原文链接:【http://xie.infoq.cn/article/3eca9a52864f002109f437916】。未经作者许可,禁止转载。
评论