一、背景描述

最近测试同学对系统进行压测。报出一个问题:几乎所有接口的成绩都不太好。甚至一些仅仅是主键查询,并且数据量不大的接口也是如此。排查过程中:跳过gateway网关,直接通过目标服务器ip进行压测发现成绩提升明显。初步判断是网关问题。网上翻阅资料发现一个优化点,就是netty本身的线程池配置。

二、线程池配置

要设置起本身可同时工作的线程数需要设置netty中的reactor.netty.ioWorkerCount参数。该参数无法直接配置,需要通过System.setProperty设置,故我们可以创建以下配置类来配置该参数:

@Configuration

public static class ReactNettyConfiguration {

@Bean

public ReactorResourceFactory reactorClientResourceFactory() {

System.setProperty("reactor.netty.ioSelectCount","1");

// 这里工作线程数为2-4倍都可以。看具体情况

int ioWorkerCount = Math.max(Runtime.getRuntime().availableProcessors()*3, 4));

System.setProperty("reactor.netty.ioWorkerCount",String.valueOf(ioWorkerCount);

return new ReactorResourceFactory();

}

}

我这里版本是reactor-netty-core-1.0.3,版本不一样的话 可能参数key不太一样。可以看一下

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: