所谓服务挂掉 |
您所在的位置:网站首页 › 未授权定位是什么意思呀 › 所谓服务挂掉 |
【所谓服务挂掉】 不知道有没有人跟我有一样的疑问"大量请求涌入为什么会把服务搞挂掉?" 有线程池的存在,不是限制了进程能占用的系统资源么?为什么会挂掉呢? 所以问题就出在,这个挂掉,具体指的是什么意思么?进程的崩溃吗? 答:这里的“挂掉”一般情况下来说,说的还真不是进程挂掉。 以一个单体的 springboot 构建的 hello-world 的 web 程序来进行举例。 min = 200 max = 200 queue-size = Integer.MAX_VALUE如果一下子涌入上千万个请求,假设网卡之类的不会成为瓶颈,进程也能够维持这么多的连接,那前面的请求就会马上占据线程池里的所有 200 个线程,进行处理,后面的请求进入等待队列。 此时就要注意了,程序的处理速度是有限的,越后面入队的请求的等待时间就会越长,请求的客户端如果是程序的话,就可能会触发客户端的超时重试,进一步加大了服务器的压力(新重新入队等待),如果是人的话,就更可怕了,那个刷新点击来简直太顺手了,虽然服务器一般会有预留空间,服务器的 CPU 可能并不会占满,但是对于客户端来说,这个服务因为排队等待时间过长,几乎处于不可用状态,我理解这就是 “挂掉” 了。 如果因为某个 api 的拥挤,抢占了主要业务的空间,那真更完蛋了。 解决方案: 针对 api 限流纵向就是降低单个服务的单次处理时长,横向就是加实例,加机器 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |