【架构师训练营】week 4 homework
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
答:
应用服务与数据服务分离,满足不同的服务的性能需求。随着网站业务的发展,一台服务器不能满足需求。应用和数据分离后,不同特性的服务器承担着不同的服务角色。如:应用服务器需要处理大量的业务逻辑,需要更强大的CPU;数据库服务器需要快速磁盘检索和数据缓存,需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,需要更大的硬盘等。这种技术手段有效的改善了网站的并发处理能力和数据存储空间。
使用缓存,改善网站性能。网站访问存在二八定律:80%的业务访问集中在20%的数据上,缓存的本质就是将这小部分的数据缓存到内存中,减少数据库访问压力,提高网站的数据访问速度,改善数据库的写入性能。缓存分为本地缓存和远程缓存。
使用应用服务器集群,改善网站的并发处理能力。在大型网站高并发,海量数据的场景下,垂直伸缩提高服务器的性能往往满足不了持续增长的业务,因此,以水平伸缩的方式,通过增加服务器的方式改善负载压力往往是最有效的解决手段。
使用数据库读写分离,改善数据库的负载压力。
使用反向代理和CDN,加速网站响应。反向代理和CDN的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网络服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,会先访问反向代理服务,若反向代理服务器缓存这用户请求的数据,则直接返回。
使用分布式文件系统和分布式数据库系统,满足增长的业务需求。分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大时才使用,一般采用业务分库,将不同业务的数据部署在不同的物理服务器上。
使用NoSQL和搜索引擎,满足数据存储和检索需求。
对业务进行拆分,应对日益复杂的业务场景。
利用分布式服务,提取共用服务,避免因连接池资源不足导致拒绝服务的场景。
评论