zoukankan      html  css  js  c++  java
  • 前置系统拦截请求

    背景:由于搞活动,有瞬时流量,好多请求被前置系统拦截。由于前置系统长时间,得不到后端的响应,就认为后端处理器繁忙,然后就拦截请求,不在放行。

    根本原因:

    线程池配置:20 核心线程数,最大线数也是20,阻塞队列1万。

    解决办法:尝试调大最大线程数为100,但是还是没改变,原因,来的请求都先入阻塞队列,待到阻塞队列满了,才会创建新线程,直到100。所以,调大核心线程数,而不是最大线程数。

    线程池工作流程:

    1、初始化线程池没有线程

    2、有任务时,先判断当前线程数有没有达到核心线程数,没有达到直接创建新线程处理任务,达到核心线程数则把任务放阻塞队列中

    3、当阻塞队列满了,开始创建新的线程,但是数量不会超过最大线程数

    4、当达到最大线程数,阻塞队列也满了,新来的任务就会走饱和拒绝策略。

  • 相关阅读:
    距离计算
    推荐系统
    jvm内存配置参数
    Vim 文件配置
    [转]linux shell 多线程实现
    synchronized 和 ReentrantLock 区别
    sptring boot 修改默认Banner
    Java容器类总结
    JAVA基本类型和包装类
    Linux 虚拟内存机制
  • 原文地址:https://www.cnblogs.com/xingrui/p/13227758.html
Copyright © 2011-2022 走看看