并发过高导致经过zuul的接口无返回

废话不多说,先列出几个关键的配置

server:
  tomcat:
    max-threads: 2000
ribbon:
  MaxConnectionsPerHost: 2000
  MaxTotalConnections: 10000

首先在服务中加个接口,接口中线程等待3秒,用于测试

@RequestMapping(value = "sleep")
public String sleep(){
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "hello sleep";
}

用JMeter测试发现接口经过zuul并发数只有50,在zuul服务中添加下面的配置 单个host最大连接数和总连接数

ribbon:
  MaxConnectionsPerHost: 2000
  MaxTotalConnections: 10000

这时候再次测试发现并发数到了200,但是远远没到我们设置的2000,在zuul服务中添加下面配置: tomcat处理最大线程数2000,这些配置都只添加在了zuul服务中,发现还是不起作用并发数还是200。原因是我们测试的服务中也需要添加同样的如下配置。再次测试发现并发到了设置的2000。

server:
  tomcat:
    max-threads: 2000