【第四周】命题作业——大型互联网系统的技术解决方案和手段

用户头像
三尾鱼
关注
发布于: 2020 年 07 月 02 日



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



答:

大型互联网一般面临大并发,高可用,高性能等挑战。

1、高性能问题



计算密集型:优化计算过程或算法提升速度

IO密集型:缓存,异步,批量



缓存

缓存是解决性能问题的重要手段。主要通过在更高速或更近位置的存储上存放数据,用于多次重复使用数据,且读次数明显多于写次数的场景。缓存可以应用在系统的各个层级。



技术手段

1、静态数据缓存:浏览器缓存CDN反向代理

2、动态数据缓存:本地缓存:比如guava cache 》远程缓存:比如redis

静态缓存在位置上离用户更近,且消耗更少的资源,所以一般网站也会进行动静分离动态页面静态化等方式进行优化。



CDN服务:内容分发服务,解决访问的性能问题,主要针对静态资源,从地域和电信服务商角度,进行定向的缓存资源,以提供快速访问服务。以前公司运营的直播点播服务就会使用CDN服务。

2、高并发问题

消息队列:削峰填谷,快速响应,提高可用性,隔离,解耦。比如RocketMQ、Kafka、RabbitMQ

负载均衡:路由,协调负载,比如F5、LVS、Nginx

集群:大并发处理能力

读写分离(主从复制,主主复制):解决数据库读写压力。

分库分表(垂直切分):通过新增硬件资源提升并发处理能力。MyCat,Apache ShardingSphere

分布式图片服务:提升并发访问能力

多线程:提升并发处理能力

分布式计算:提升并发处理能力

池化技术:连接池、线程池

3、高可用问题

冗余

主备(有状态),故障转移

心跳+集群(无状态)

灰度发布

限流、降级、熔断

4、海量数据问题

搜索引擎:通过倒排索引,提供快速的搜索服务

分库分表(水平切分):解决单表数据量过大的问题

5、可伸缩性

集群:水平伸缩能力,无状态水平扩容,有状态做分片路由。

6、可扩展性

微服务:分布式部署能力,扩展能力

中台:提供通用服务、基础服务

7、安全问题

防火墙

网关

web攻击

漏洞攻击

DDos攻击



用户头像

三尾鱼

关注

还未添加个人签名 2018.07.10 加入

还未添加个人简介

评论

发布
暂无评论
【第四周】命题作业——大型互联网系统的技术解决方案和手段