极客时间 - 架构师一期 - 第四周作业
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
1、应用数据分离:解决了资源不足的问题,分摊当前服务器的计算压力,使系统能提供更高的系统并发能力
2、使用缓存改善系统性能:提高频繁访问的数据的读取速度,内存中存储,比文件和数据库访问快。本地缓存和分布式缓存。如果存储的是计算后的结果,可以降低数据库和服务器的访问压力。
3、使用应用服务器集群改善系统的并发处理能力:通过负载均衡,每个服务器处理一部分用户请求。
4、数据库读写分离:当数据更新频繁,数据库成为服务的瓶颈的时候,使用读写分离可以分担数据库的写压力,近似提升一倍的效率。
5、使用反向代理和cdn加速网站响应:cdn即内容分发网络,网络服务器运营商可以在本地的服务器中缓存静态文件,用户可以就近访问提升访问效率。反向代理服务器如果有静态内容,则立即返回,如果没有,则去其他服务器获取返回。
6、使用分布式文件系统和分布式数据库系统:数据量增大后,之前的主从数据库的数据都会大量存储,数据存储并没有提升。需要使用分布式的关系数据库,构建数据库集群共同对外提供服务,用户的写操作可以分摊在集群中,数据库的存储和性能也会对应提升。文件系统也相似。
7、使用nosql和搜索引擎:分布式数据库能提供高并发的写场景,但是还是有缺陷。分布式数据库对模糊查询和复杂关联查询不友好,nosql数据库能进一步提升数据的存储能力和查询操作。搜索引擎能极大提升查询效率。
8、业务拆分:系统越来越复杂,可以抽取出公用的服务进行业务拆分,好处是开发和维护简单,服务部署在不同的集群,扩容和伸缩更加灵活。可以使用rpc和消息队列进行通信。缺点是不好跟踪问题。
9、微服务以及中中台化:将服务拆分成微服务后,相同的服务不需要重复开发,压力大的服务多部署,压力小的少部署。微服务是主要的构架模式,比较重要,微服务设计拆分是比较需要经验的。
10、大数据与智能化:更好地分析数据,使用数据更智能地提供服务。
评论