架构师训练营第 04 周—— 练习

发布于: 2020 年 06 月 30 日
架构师训练营第 04 周—— 练习

作业一:

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

解决性能问题的相关技术方案和手段

  • 浏览器:减少HTTP请求、浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等

  • CDN:将网站静态内容分发至离用户最近的网络服务商机房,使用户通过最短访问路径获取数据。

  • 反向代理服务器:缓存热点文件,加快请求响应速度,减轻应用防护武器负载压力

  • 本地缓存和分布式缓存:加快请求处理过程,减轻数据库负载压力

  • 异步操作:将用户请求发送至消息队列等待后续任务处理,当前请求直接返回响应给用户

  • 服务器集群:提升整体并发处理能力,改善性能

  • 代码:多线程、改善内存管理

  • 数据库:索引、缓存、SQL优化

  • NoSQL:提供优化数据模型、存储结构、伸缩特性等手段

解决可用性问题的相关技术方案和手段

  • 冗余

  • 软件开发过程的质量保证

解决伸缩性问题的相关技术方案和手段

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

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

  • 对于关系数据库,很难做到大规模集群的可伸缩性,因此必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。

  • 对于NoSQL数据库,其对伸缩性的支持通常都非常好,可以做到在较少运维参与的情况下实现集群规模的线性伸缩。

解决扩展性问题的相关技术方案和手段

  • 事件驱动架构:消息队列

  • 分布式服务

解决安全性问题的相关技术方案和手段

  • 客户端脚本安全:浏览器安全、防跨站脚本攻击、防跨站点请求伪造、防点击劫持、防网页钓鱼

  • 服务器端应用安全:认证与会话管理、访问控制、加密算法安全、防SQL注入攻击、防文件上传漏洞、防Web框架漏洞、防拒绝服务攻击、防开发语言安全、防Web Server配置安全

  • 业务逻辑安全

用户头像

李伟

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 04 周—— 练习