一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
一个典型的大型互联网应用系统,和以往的系统不同的区别就是,面临着大量的不同的用户。由大量的用户带来的巨大的访问量,就带来了 性能、数据分析等一系列的问题
首先带来的问题就是 高并发,大流量
大量的用户一起访问服务,自然会带来高并发的问题。而高并发的请求,又包含了请求各种各样的数据
- 静态资源、图片、音视频等
- 音视频直播流
- 数据库存储的变化的数据,不变的数据
- 逻辑计算,比如秒杀、从在线人中挑选最匹配的人 等等
- ...
然后,用户随时都需要访问服务,所以带来高可用的问题
用户地处各地,网络情况复杂
用户身份不明,会有互联网安全问题
需求快速变更,导致服务频繁更改,发布
用户访问数据的存储、处理、分析
由于这些问题的出现,所有互联网应用系统需要有对应的解决方案
1. 高并发、大流量
-
对于静态资源、图片的访问、以及 音视频直播流
使用CDN,反向代理、以及专门的图片资源服务,OSS 等
分布式文件系统 -
数据库数据访问更改
使用 缓存、分布式缓存,
垂直伸缩,增加服务器硬件性能
水平伸缩,分布式数据库 -
单服务器处理到达极限
服务分隔,分布式服务、集群、负载均衡
消息队列 -
逻辑计算
垂直伸缩,增加CPU
离线计算,大数据处理平台,搜索引擎
2. 高可用
服务和数据库使用集群
数据库主从复制,数据冗余
分布式缓存主从
3. 用户网络环境复杂
多机房,CDN
4. 安全
验证码
xss sql 注入等软件层面处理
机房防攻击硬件
5. 大量的用户访问数据,比如访问记录,订单
大数据处理平台
搜索引擎
推荐引擎
数据仓库
6. 运维管理
对于服务的自动扩展、减少,服务的监控预警通知等
jenkins、自动化运维监控平台
微服务管理平台
7. 需求快速变更,频繁的发布
服务分割,分布式服务,消息队列
网友评论