架构师训练营第四章作业

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

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

一个典型的大型互联网应用系统有前端架构、网关及应用层架构、服务层架构、存储层架构、后台架构、安全架构、数据采集与监控架构、数据中心机房架构等方面。具体如下:

  1. 前端架构:

1)APP及Web开发技术,目前主要的WEB框架有vue、angular、react,APP有原生Android、IOS开发,使用的技术有java、kotlin、Objective-c、swift;有H5的Web开发;有Hybird混合开发,使用到的技术有uni-app,ionic+angular,react native等。

2)浏览器及HTTP优化技术。浏览器主要有google浏览器、firefox浏览器、IE浏览器等,可以使用浏览器的调试模式,进行页面和JS调度。HTTP优化技术包括有gzip压缩技术,缓存技术等。主要是为了提升网页的响应速度。

3)CDN技术。CDN为Content Delivery Network,即内容分发网络。做为静态页面的缓存技术,用户访问最近的CDN服务器的内容,可以避免去服务器中获取内容。

4)动静分离。将静态资源文件部署在专门的服务器中,与WEB动态内容分离。可独立访问静态资源文件。

5)图片服务。将图片、视频等大文件独立部署,与其他内容分享,并可使用CDN技术和缓存技术。

6)反向代理。在应用服务器、文件服务器之前进行反向代理,提供页面缓存服务。

7)DNS。域名服务,解析域名到IP,可通过智能DNS实现DNS负载均衡,指向对应的服务器上。

  1. 网关及应用层架构

1)网关架构。例如spring-cloud-gateway。用于隔绝应用服务与外部请求的直接访问,可达到服务隔离。可进行限流,限定访问,日志记录等作用。

2)负载均衡。可对集群服务器进行负载均衡,分摊请求到不同的服务器上。可对web服务器、文件服务器、应用服务器进行负载均衡。

3)动态页面静态化。对于访问量特别大而更新不频繁的动态页面,可以将其静态化,生成静态页面。再利用静态页的优化手段加速用户访问,如反向代理、CDN、浏览器缓存等。

4)业务拆分。将业务拆分成规模较小的产品,独立开发、部署、维护。可降低系统耦合度,也便于数据库业务分库。

  1. 服务层架构

1) 微服务架构。将应用拆解到不同的服务中,实现敏捷开发和部署。微服务的优点包括复杂度可控、独立按需扩展、技术选型灵活、容错、可用性高。同时也带来些缺点包括多服务运维难度大、系统部署依赖、服务间通信成本高、数据一致性不容易保障、系统集成测试难度高、性能控制难等。微服务用到很多技术,像spring cloud框架、docker、Apollo配置中心、zookeeper、Kubernetes等

2)分布式消息列表。实现业务和业务、业务和服务之间的异步消息发送及低耦合的业务关系。像Kafka、MQ等

3)分布式缓存。通过可伸缩的服务集群提供大规模热点数据的缓存服务。像memcached、Redis等

4)分布式一致性(锁)服务。解决分布式事务问题。

  1. 存储层架构

1)分布式文件。用于存储图片、网页、视频等文件。可以使用云存储,像七牛云、阿里云OSS等。也可以自己搭建DFS系统,像Hadoop

2)分布式关系数据库。根据业务配置将数据库访问路由到不同的物理数据库中,实现关系数据库的分布式访问。

3)NoSQL数据库。非关系型数据库,在内存管理、数据模型、集群分布式管理有很多优势。像HBase、MongoDB、Redis等

  1. 后台架构

1)大数据平台。基于大数据开发的平台,像Hadoop、Mapreduce、Spark、strorm等技术

2)搜索引擎。网站内部的搜索引擎,目前用的比较多的是elasticsearch

3)推荐引擎。为用户提供个性化推荐服务。

4)数据仓库。根据离线数据,提供数据分析与数据挖掘服务

  1. 运维与安全

1)数据采集与展示。包括浏览器/APP数据采集、服务器业务数据采集、服务器性能数据采集。

2)数据监控与报警。监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障

3)攻击与防护。保护网站免遭攻击及敏感信息泄露

4)数据加密与解密。敏感信息加密传输与存储,保护网站和用户资产。Https加密,通过SSL证书进行加密等

用户头像

饶军

关注

还未添加个人签名 2020.03.23 加入

还未添加个人简介

评论

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