Week 4 命题作业及总结

用户头像
阿泰
关注
发布于: 2020 年 10 月 19 日

作业:一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

大型互联网应用系统除了满足系统功能需求外,软件架构还需要关注性能、可用性、伸缩性、扩展性和安全性5个架构要素。下面从这5个架构要素去阐述架构目标及对应的技术方案和手段:

1、高性能

性能是网站的一个重要指标,除非没得选择,否则用户无法忍受一个响应缓慢的网站。高性能技术方案和手段包括:

(1)在浏览器端,可以通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等手段改善性能;还可以使用CDN,将网站静态内容分发至离用户最近的网络服务商机房,缓存热点文件,加快请求相应请求响应速度,减轻应用服务器负载压力。

(2)在应用服务器端,可以使用服务器本地缓存和分布式缓存,通过缓存在内存中的热点数据处理用户请求,加快请求处理过程,减轻数据库负载压力;也可以通过消息队列、应用服务器集群改善性能。

(3)在代码层面,可以通过多线程、改善内存管理等手段优化性能。

(4)在数据库服务器端,包括索引、缓存、SQL优化、引进NoSQL数据库等性能优化手段。

2、高可用

高可用指当服务器宕机时,服务或应用依然可用。高可用的技术方案和手段包括:

(1)冗余。应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份。

(2)软件开发过程的质量保证。通过预发布验证、自动化测试、自动化发布、灰度发布等手段,减少将故障引入线上环境的可能,避免故障范围扩大。

3、可伸缩

可伸缩指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。可伸缩的技术方案和手段包括:

(1)对于应用服务器集群,只要服务器上不保存数据,所有服务器都是对等的,通过使用合适的负载均衡设备就可以向集群中不断加入服务器。

(2)对于缓存服务器集群,加入新的服务器可能会导致缓存路由失效,进而导致集群中的大部分缓存数据都无法访问,所以需要改进缓存路由算法保证缓存数据的可访问性。

(3)关系数据库虽然支持数据复制,主从热备等机制,但很难做到大规模集群的可伸缩性,因此关系数据库的集群伸缩性方案必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。

(4)对于大部分NoSQL数据库产品,由于其先天就是为海量数据而生,因此其对伸缩性的支持通常都非常好,可以做到在较少运维参与的情况下实现集群规模的线性伸缩。

4、可扩展

可扩展指设计系统的架构使其能够快速响应需求变化。

衡量系统架构扩展性好坏的主要标准就是在系统增加新的业务产品时,是否可以实现对 现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品。 不同产品之间是否很少耦合,一个产品改动对其他产品无影响,其他产品和功能不需要 受牵连进行改动。

可扩展架构的技术方案和手段包括:

(1)事件驱动架构,利用消息队列实现,将用户请求和其他业务事件构造成消息发布到消息队列,消息的处理者作为消费者从消息队列中获取消息进行处理。通过这种方式将消息产生和消息处理分离开来,可以透明的增加新的消息生产者任务或者新的消息消费者任务。

(2)分布式服务,将业务和可复用服务分离开来,通过分布式服务框架调用。新增产品可以通过调用可复用的服务实现自身的业务逻辑,而对现有产品没有任何影响。可复用服务升级变更的时候,也可以通过提供多版本服务对应用实现透明升级,不需要强制应用同步变更。

5、安全性

系统的安全架构就是保护系统不 受恶意访问和攻击,保护网站的重要数据不被窃取。 衡量系统安全架构的标准就是针对现存和潜在的各种攻击与窃密手段,是否有可靠的应对策略。

附互联网技术架构一览:



学习总结:

本周主要讲述互联网架构面临的挑战以及发展的几个阶段,以及架构模式,架构核心要素等,具体知识点包括:

  1. 当前互联网系统面临的常见挑战是什么

  2. 应对高并发挑战的两个技术方向:垂直伸缩、水平伸缩

  3. 互联网架构演化过程:10 阶段

  4. 互联网的架构模式:9 种模式

  5. 衡量一个系统的架构设计的核心要素:高性能、高可用、可伸缩、可扩展、安全

  6. 互联网架构技术总览

另外,重点介绍了淘宝、宅米网两个公司的架构演进案例,对架构知识进行应用。

本周学习内容结合老师的专著《大型网站技术架构》(注:学习了一半)进行学习,效果挺好,对互联网架构演化过程有更深刻的理解:

1、架构都是在演化过程中完善的,最好的并不是最适合你的;

2、要分析当前架构的问题在哪里,目标是什么,这样才能找到合适的架构演进方案;

3、尽量找行业成熟的解决方案,避免重新造轮子;



用户头像

阿泰

关注

还未添加个人签名 2018.04.28 加入

还未添加个人简介

评论

发布
暂无评论
Week 4 命题作业及总结