所谓服务挂掉

您所在的位置:网站首页 未授权定位是什么意思呀 所谓服务挂掉

所谓服务挂掉

2024-06-16 00:06| 来源: 网络整理| 查看: 265

【所谓服务挂掉】

不知道有没有人跟我有一样的疑问"大量请求涌入为什么会把服务搞挂掉?"

有线程池的存在,不是限制了进程能占用的系统资源么?为什么会挂掉呢?

所以问题就出在,这个挂掉,具体指的是什么意思么?进程的崩溃吗?

答:这里的“挂掉”一般情况下来说,说的还真不是进程挂掉。

以一个单体的 springboot 构建的 hello-world 的 web 程序来进行举例。

min = 200 max = 200 queue-size = Integer.MAX_VALUE

如果一下子涌入上千万个请求,假设网卡之类的不会成为瓶颈,进程也能够维持这么多的连接,那前面的请求就会马上占据线程池里的所有 200 个线程,进行处理,后面的请求进入等待队列。

此时就要注意了,程序的处理速度是有限的,越后面入队的请求的等待时间就会越长,请求的客户端如果是程序的话,就可能会触发客户端的超时重试,进一步加大了服务器的压力(新重新入队等待),如果是人的话,就更可怕了,那个刷新点击来简直太顺手了,虽然服务器一般会有预留空间,服务器的 CPU 可能并不会占满,但是对于客户端来说,这个服务因为排队等待时间过长,几乎处于不可用状态,我理解这就是 “挂掉” 了。

如果因为某个 api 的拥挤,抢占了主要业务的空间,那真更完蛋了。

解决方案:

针对 api 限流纵向就是降低单个服务的单次处理时长,横向就是加实例,加机器


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3