写点什么

架构师训练营第四周作业

用户头像
W_T
关注
发布于: 2020 年 06 月 29 日

问题:

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



解答:

假设这个大型互联网系统的整体架构如下。





从可能遇到的主要几个问题,来总结各层应该如何解决



1. 性能



提高性能的手段:

1、通过缓存提高读能力

2、增服务器,降低单点压力

3、减少交互次数

4、缩短通讯链路

等等等等....



为了提高性能每一层可以做的事情

互联网应用层:

  • 常用数据提前缓存到本地。

  • 对请求结果进行缓存。

  • 多次单个请求,合并成一次批量请求。

  • 压缩请求报文。



接入层:

  • 静态资源通过CDN获取。

  • 提供就近接入的入口。

  • 横向扩展节点数量。

  • ‍垂直增加机器性能。



网关层:

  • 横向扩展节点数量。

  • 垂直增加机器性能。



应用服务层&支撑服务层:

  • 使用分布式缓存/NoSQL,提高读能力。

  • 使用消息队列,同步改异步。

  • 使用性能更高的通信方式(例如用RPC替代Http)

  • 需要大量计算的业务,提前计算出结果,互联网应用层直接查询结果。

  • 数据库做分库分表,提高读写能力。

  • 数据库做读写分离,或者将读请求放到读性能更高存储中,例如HBase、ES。

  • 横向扩展节点数量。

  • ‍垂直增加机器性能。



2. 可用性

从系统整体架构考虑,可以采用的方案:

  • 提供灾备环境(冷备或者热备)

  • 同城双活/异地多活

  • 采用集群模式部署应用服务或者中间件

  • 异常情况下主动的服务降级

3.扩展性/伸缩性

从系统整体架构考虑,可以采用的方案:

  • 将服务器以容器的方式标准化部署,方便随时扩展

  • 所有的请求都是无状态的

  • 实时监控服务器状态,智能判断扩展/收缩

4. 安全性

互联网应用层:

  • APP加固、混淆

  • 使用HTTPS协议

  • 对报文内容加密,使用对称或者非对称加密方式

  • 主动扫描代码,防常见安全问题的,例如:SQL注入、跨站攻击脚本等



接入层:

  • DDOS主动防御



网关层:

  • 请求的权限控制



应用服务层&支撑服务层:

  • 敏感数据(身份证、电话等)加密保存

  • 数据权限控制,防止越权查询、修改数据



发布于: 2020 年 06 月 29 日阅读数: 61
用户头像

W_T

关注

还未添加个人签名 2018.01.09 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第四周作业