写点什么

第 4 周学习总结

用户头像
嘻哈
关注
发布于: 2020 年 07 月 01 日

1.高并发、大流量



  • Google日均PV35亿,日均IP数3亿

  • 微信在线用户10亿

  • 天猫双十一一天交易额3000亿



2.高可用



  • 7 x 24小时不间断服务,大型互联网网站宕机



3.用户分布广泛,网络情况复杂



4.安全环境恶劣



5.需求快速变更,发布频繁



6.渐进式发展,好的互联网产品都是慢慢运营出来的,不是一开始就开发好的。那些刚开始投入巨资,有巨大背景的网站,后来发展很惨淡



解决方案



垂直伸缩




购买性能更强的硬件,但是提升硬件需要更多的资金,物理硬件同样存在瓶颈,操作系统设计和应用程序本身本身制约
性能只能到底某个点






水平伸缩




水平伸缩,增加服务器提升计算能力的架构方法。水平伸缩可以克服垂直伸缩带来的单位计算成本随着计算能力增强而
迅速飙升的问题

另外,水平伸缩可以增加更多的服务器,这样不会向垂直伸缩那么遇到单台服务器的极限

架构模式



每一个模式描述了一个我们周围不断重复发送的问题以及该问题解决方案的核心。这样就可以使用该方案而不必重复工作

模式的关键在于模式的可重复性,问题与场景的可重复性带来的解决方案可重复使用

互联网架构模式就是试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用
重复使用的一些解决方案,这些方案是互联网软件系统的重要组成部分





分层




是企业应用系统最常见的一种架构模式,将系统在横向维度上分成上下几个部分,每个部分负责相对比较单一的职责,通过上层对下层的依赖和调用组成一个完整的系统

横向:网关、微服务、基础设施(缓存、消息队列、数据库)





分割




如果说分层是对系统的横向切分,那么分割是对软件系统的纵向切分。

系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚,低耦合的模块
单元,一方面有助于系统的开发维护;另一方便于不同模块的分布式部署,提高网络并发处理能力和功能扩展能力






分布式



对与大型网站,分层与分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,
通过远程协同工作。分布式意味着解决同样的问题可以使用更多的计算机,CPU/内存、存储资源也就越多,能够处理的并发
访问和数据量就越大





  • 分布式应用和服务

  • 分布式静态资源

  • 分布式数据和存储

  • 分布式计算

  • 



集群



使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问的模块,比如网站首页,还需要将独立部署的服务器
集群化,即多台服务器不是相同的应用组成一个集群,通过负责均衡设备共同对外提供服务





缓存



缓存就是将数据存储在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一收手段,显得CPU越来越快的一个重要
因素是使用更多的缓存,在复杂软件设计中,缓存几乎无处不在。大型网站设计在很多方面使用了缓存设计




  • CDN

  • 反向代理

  • 本地缓存

  • 远程缓存

  • 



异步



计算机软件发展的一个重要目标和驱动力是降低软件耦合性。事物之间越少之间关系,那么越少被彼此影响,越可以
独立发展。大型网站架构中,系统解耦的手段除了前面提到的分层、分割、分布式等手段,还有个重要的手段是异步
就是将一个夜晚操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法就行协作





  • 提高系统可用性

  • 加快网站响应速度

  • 消除并发访问高峰

  • 



冗余



互联网应用需要提供7x24小时服务,但是服务器总数有可能出现故障,特别是服务器规模比较大的时候,服务器宕机
是必然事件。要想保证在服务器宕机的情况下网站依然可以继续服务,数据不会丢失,就需要一定程度冗余运行,数据冗余
备份。





自动化



在无人值守的情况下网站可以正常运行,一切可以自动化是网站的理想状态。目前互联网的自动化架构设计主要集中在运维
方面




发布于: 2020 年 07 月 01 日阅读数: 43
用户头像

嘻哈

关注

还未添加个人签名 2018.02.13 加入

还未添加个人简介

评论

发布
暂无评论
第4周学习总结