点播同时并发怎么算带宽_并发系统三板斧

高并发系统总是让人欢喜让人忧,对于大部分人碰到高并发系统时总是局限于在使用什么工具上,而这种方式总容易使人穷驴技穷,对于工具太依赖说明你总是看不到问题的本质,高手解决问题通常不会局限一个点,他们通常都有体系化的思维,同一个问题他们会有很多种解决方案,这一类人即拥有体系化的思维,又有一眼看透本质的能力。

面试官问你某些高并发的场景怎么处理时,你要跳出他的问题直接看本质,他其实关注的不是这个问题,而是你解决这类问题的思路。然后你总是在细节上纠缠不清,那其实你已经很危险了。既然面试官想要了解你的思路,那么今天就为大家提供一套高并发系统放之四海皆有效的解决思路,它们分别为缓存、异步、分流,我也称它为高并发的三板斧。

总结起来高并发的系统的性能瓶颈主要突出在网络带宽有限、应用服务器处理请求有限、数据库连接资源有限三个问题上,我们针对性能上的优化也主要是针对这三个问题来解决。

1、缓存

因为大部分系统的读取数据的请求是远远大过于写数据的请求,而缓存就是为了把大量的读数据请求都挡住,通过缓存热点数据,可以在客户端、代理层、应用层、持久层来添加对应的缓存,这样可以挡住大部分的请求进入服务器、应用、和数据库,从而达到缓解并发压力的效果。

d43cc244e02f8a64a99335db100f20f7.png

2、异步

读取数据的请求大部分都可以通过缓存把请求挡住,那么而写数据的请求频繁的情况下我们又如何应对呢,因为写请求需要变更数据库缓存等位置的数据,而这个过程是比较耗时的,所以请求并发量高的时候通常容易造成慢请求,而这些慢请求在一段时间内会占用带宽、应用和数据库连接;最后会导致网络、应用程序、数据库资源耗尽而崩溃。

所以解决写请求并发高的场景我们就需要解决资源占用时间长的问题,这种情况下我们就会采用异步的方式,把耗时的操作后置化处理,成功收到写数据请求我们会把耗时的数据操作放到一个队列里,请求成功保存到队列后服务端会马上响应客户端请求;保存到队列的请求服务端通常会开启一个专门的进程进行处理。通过这种异步化的方式能让用户能即时收到请求的响应提升用户体验,也可以平缓流量,减少了资源的占用时间,减轻了服务器压力。

0bb95ad3e61320d27e701189c6dd9385.png

3、分流

一个人的力量终究是有极限的,当工作量超过单人的负荷时我们通常会选择通过加人的方式来分摊工作任务。我们系统面对高并发的流量采用的解决方式也是如此,当并发请求量已经超过单个应用的极限时我们可以通过分流的方式来把请求分摊出去,把流量分摊给多个应用去处理,可分摊的节点越多同时系统能承受的并发流量也越多,常用的分流方式通常采用集群和服务拆分达到分流的效果;

ee2320b50a497e23b524e713eff70e64.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值