week04 总结
互联网面临的挑战
高并发、大流量
高可用
海量数据
用户分布广泛、网络情况复杂
安全环境恶劣
需求快速变更、发布频繁
渐进式发展
应对高并发的两个技术方向
垂直伸缩
通过升级硬件和网络吞吐能力可以实现垂直伸缩。由于不需要改变应用架构,所以通常
被认为是最简单的短期伸缩性方案。
通过使用 RAID(独立冗余磁盘阵列)增加 I/O 吞吐能力。
通过切换到 SSD(固态硬盘)改善 I/O 访问速度。
通过增加内存减少 I/O 操作 。
通过升级网络接口或者增加网络接口提高网络吞吐能力。
更新服务器使用更多处理器或者更多超线程。
缺点:
有物理极限
系统设计或应用程序本身制约
水平伸缩
通过增加服务器提升计算能力
互联网架构演化
互联网架构模式
试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用重复使用的一些解决方案。
分层
将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统。
分割
分割就是在纵向方面对软件进行切分。
系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。
分布式
分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着解决同样的问题可以使用更多的计算机,计算机越多,CPU、内存、存储资源也就越多,能够处理的并发访问和数据量就越大。
• 分布式应用和服务
• 分布式静态资源
• 分布式数据和存储
• 分布式计算
集群
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
缓存
将数据存放在距离计算最近的位置以加快处理速度。
• CDN
• 反向代理
• 本地缓存
• 远程缓存
异步
就是将一个业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作。
• 提高系统可用性
• 加快网站响应速度
• 消除并发访问高峰
冗余
一定程度的服务器冗余运行,数据冗余备份。
自动化
主要指自动化运维
安全
对重要的操作和信息进行风险控制
如何衡量一个系统的架构设计
高性能
主要提升系统响应速度
高可用
主要手段是冗余
可伸缩
指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。
可扩展
扩展性架构直接关注系统的功能需求。互联网应用快速发展,功能不断扩展,如何设计系统的架构使其能够快速响应需求变化,是系统可扩展架构主要的目的。
主要手段是事件驱动架构和分布式服务。
安全
互联网架构技术一览
前端架构
• App 及 Web 开发技术
• 浏览器及 HTTP 优化技术
• CDN
• 动静分离
• 图片服务
• 反向代理
• DNS
网关及应用层架构
• 网关架构
• 负载均衡
• 动态页面静态化
• 业务拆分
服务层架构
• 微服务框架
• 分布式消息队列
• 分布式缓存
• 分布式一致性(锁)服务
存储层架构
• 分布式文件
• 分布式关系数据库
• NoSQL 数据库
后台架构
• 大数据平台
• 搜索引擎
• 推荐引擎
• 数据仓库
运维与安全
• 数据采集与展示
• 数据监控与报警
• 攻击与防护
• 数据加密与解密
评论