写点什么

架构师训练营第四周作业

用户头像
xs-geek
关注
发布于: 2020 年 10 月 18 日

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


前端架构

App 及 Web 开发技术

快速开发业务应用,只需要关注业务逻辑

移动端开发:Android、IOS、Flutter

Web 端开发:

MVC 框架-WebX,Spring、Django、Flask

wen 框架:react、vue

浏览器及 HTTP 优化技术

Http 缓存:静态资源

前端代码资源压缩:Gzip 压缩

CDN

内容分发网络,前端缓存

解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度和成功率。

动静分离

将网站静态资源(HTML,JavaScript,CSS,img 等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。


静态资源放在 Nginx、CDN

Lighttpd+PHP

图片服务

专门为图片读写操作优化的独立服务器


  • 分担 Web 服务器的 I/O 负载 - 将耗费资源的图片服务分离出来,提高服务器的性能和稳定性

  • 能够专门对图片服务器进行优化 - 为图片服务设置有针对性的缓存方案,减少带宽成本,提高访问速度

  • 提高网站的可扩展性 - 通过增加图片服务器,提高图片吞吐能力


Lighttpd

反向代理

用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为 Web 加速

  • 提高内部服务器的安全

  • 加快对内部服务器的访问速度

  • 节约了有限的 IP 资源


Squid、Nginx、Tengine

DNS

域名服务,域名解析成 IP

GeoDNS:返回最近的机房的 IP 地址

网关及应用层架构

网关架构

  • 隔绝网站应用服务与外部服务商应用的直接访问

  • 限流

  • 限定访问,ip、域名、请求等非法信息拦截

  • 日志记录

  • 不会因为业务增加而导致网关系统重启


SpringCloud Gateway、Zuul、Kong


负载均衡

将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

LVS,Nginx、HAProxy、Load Balancer

动态页面静态化

业务拆分

横向拆分

应用、数据库、文件服务拆分

纵向拆分:

分布式

服务层架构

微服务框架

业务分工,各司其职


SpringBoot、Dubbo、Akka、VertX

分布式消息队列

应用耦合,异步消息,流量削锋


Rabbitmq、Kafka

分布式缓存

解决数据库服务器和 Web 服务器之间的瓶颈


Memcached、TbStore、Tair、redis

分布式一致性(锁)服务

为分布式应用提供高效可靠的分布式协调服务


Zookeeper

存储层架构

分布式文件

可横向扩展、冗余

TFS、HDFS、Minio、S3

分布式关系数据库

不改变业务代码实现,提高数据库处理能力

Mysql、Oracle 集群模式

借助中间件:Mycat

NoSQL 数据库

超大规模数据的存储,横向扩容方便,支持大量数据写入

Mongo、Hbase、Cassandera、cassandra

后台架构

大数据平台


Hadoop、Spark、Flink

搜索引擎


Lucence、Isearch、Elasticsearch、Solr

推荐引擎

数据仓库


Hive

运维与安全

数据采集与展示


ELK、Flume

数据监控与报警


Elastic: APM、Beats、X-pack(alert)

攻击与防护

WAF(web 应用防火墙)

数据加密与解密

HTTPS

SSL

发布于: 2020 年 10 月 18 日阅读数: 36
用户头像

xs-geek

关注

还未添加个人签名 2018.04.22 加入

还未添加个人简介

评论

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