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

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

    根本原因:

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

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

    线程池工作流程:

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

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

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

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

  • 相关阅读:
    HDU 4644 BWT (KMP)
    常数的值类型问题
    HDU 1395 2^x mod n = 1 (欧拉函数)
    HDU 5384 Danganronpa(AC自动机)
    9.自己实现linux中的tree
    8.底层文件库
    7.标准文件库
    7.gcc的使用
    5.文件I/O
    4.vim操作
  • 原文地址:https://www.cnblogs.com/xingrui/p/13227758.html
Copyright © 2011-2022 走看看