对于用户请求量过大的应用来说,总是会绕不开一些名词。比如用户请求量过大,会导致一种高并发的现象,那么如何来应对这种现象呢,在我浅薄的认知里,目前有两种方式。

 

  第一种是土豪公司做法,钱!钱!钱!用钱买更多的硬件,通过做服务器集群或者将不同的功能模块部署到不同的服务器上(分布式),将一台服务器的压力分散给多台服务器;

  第二种是牺牲做法,具体的说,可能就是通过以时间换取空间的方法,以牺牲部分客户体验效果(队列)或者牺牲部分数据的准确性(缓存)的方式来减少服务器的压力。

 

1.高并发

  高并发是一种现象,当同一时间,多个用户访问应用时就难免会出现这种现象。

2.集群

  集群是一种策略,将服务部署到多台服务器上,从而减少服务器的压力。集群离不开另一个名词(高可用)。高可用,即使得应用的可用程度提高,当一台服务器宕机时,不影响其业务的正常流程。

  集群的话,会增加硬件的成本。

3.分布式

  分布式也是一种策略,将业务按照功能进行划分,不同的功能服务部署到不同的服务器上,这样既减少了服务器的压力,同样也不会因为其中某个功能不能使用导致业务整体瘫痪的现象。

  分布式也是通过增加硬件的方式,所以也会在一定程度上增加了硬件的成本。

4.队列

  队列也可以看作是一种策略,通过将所有的请求保存到消息队列中,后台服务器逐一读取请求并处理的方式进行缓解服务器的压力。

  队列会导致用户的请求响应有延迟,实时性降低,从一定程度上牺牲了用户的体验感。

5.缓存

  缓存毋庸置疑也是一种策略,通过将用户同样的访问请求保存起来,当用户第二次访问的时候,之前从保存的地方取出,直接响应,减少与数据服务器之间的交互。

  缓存如果在缓存内容没有及时更新的情况下响应给用户,会导致数据的准确性有偏差。

 

  这段时间一直听到这些名词,在之前的面试中也被频繁的问到这些概念,刚好目前也在学习这部分内容,就将自己的见解记录下来。希望有不对的地方,博友可以严厉指正,有遗漏的地方,可以补充说明。

  谢谢!

版权声明:本文为peterpc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/peterpc/p/13207110.html