本地计算机和服务器之间线程名称的差异



我们有一个使用Webclient的Spring应用程序,它可以调用外部API。在本地环境中,日志中的线程名称为[reactor-http-nio-X]:

2021-12-01 15:58:42.960 |  | DEBUG 37528 --- [ctor-http-nio-5] o.s.s.w.s.u.m.OrServerWebExchangeMatcher : Trying to match using PathMatcherServerWebExchangeMatcher{pattern='/webjars/**', method=null}
2021-12-01 15:58:42.960 |  | DEBUG 37528 --- [ctor-http-nio-5] athPatternParserServerWebExchangeMatcher : Request 'GET /courses' doesn't match 'null /webjars/**'

在服务器中,线程名称改为[reactor-http-epoll-X]:

2021-12-01 15:58:34.462 |  | DEBUG 37528 --- [ctor-http-nio-4] io.netty.handler.ssl.SslHandler          : [id: 0x94714fe1, L:/192.168.0.7:60057 - ...
2021-12-01 15:58:34.463 |  |  INFO 37528 --- [ctor-http-nio-4] HTTP-TRACING                             : [id:94714fe1, L:/192.168.0.7:60057 - ...

在我的理解中,这种差异也在调度器挂钩上产生了不同的行为。

我如何理解为什么线程名称(和行为(如此不同,以及如何使用nio线程将服务器配置为与本地机器一样的行为?

这些名称反映了这样一个事实,即服务器上使用的底层Netty库是本地库(Linux epoll(,而您的本地机器是Mac或Windows PC。这些名称不应该影响reactor提供的钩子的行为,除非编写了专门查看线程名称的钩子。。。

最新更新