架构师训练营第二期 Week 4 作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
HTTP优化,通过减少HTTP请求次数,请求大小等方法提高并发性。
CDN,通过将静态内容,主要是图片,样式表和JS等内容放在更靠近用户的地方提高请求响应速度,同时提高并发性和可用性。
反向代理,可以将静态内容缓存减少请求到达应用服务器的数量,提高响应速度,提高并发性。
集群与负载均衡,通过将请求分发到集群中的某一台服务器减少服务压力,就算某台服务器当机其他服务器也可以继续响应请求,提高并发性和可用性。
动态页面静态化,通过将动态内容转化为静态页面以减少对应用服务器和数据库的访问次数,提高并发性。
微服务,将多应用中可以复用的部分提取出来,避免重复开发,重复修改,提高可维护性和系统扩展性。
分布式消息队列,提供异步消息处理能力,提高并发性和可用性。
分布式缓存,减少访问数据库的次数以减少数据库压力,提高并发性和可用性。
分布式事务,解决不同应用和系统之间的数据一致性问题。
分布式文件,可以提供海量文件存储支持,同时提高可用性。
分布式关系型数据库,可以提供海量数据的支持,同时提高可用性。
NoSQL,可以解决关系型数据库扩展不方便的问题,用于存储非关系型数据,访问速度快,提高并发性和可用性。
大数据,用于处理海量数据以便其他系统进行分析和展示。
搜索引擎,用于解决关系型数据库模糊查找效率低,匹配不好的问题。
推荐引擎,用于提供更好的用户体验,提供定制化的用户服务。
数据仓库,用于存储经过处理的海量数据,为分析决策提供数据支持。
监控,日志与报警,时刻了解系统状态,发现系统异常,为运维提供技术支持。
攻击与防护,为系统提供各种攻击的应对方案,提高系统安全性。
加密与解密,保护敏感数据,即使系统被攻破数据也无法支持被盗取,提高系统安全性。
评论