应使用哪个线程池在 Spring Cloud Gateway Filter 内执行昂贵的 cpu 操作?

pha*_*ani 5 spring-cloud-gateway

一般来说,最好避免 Spring Cloud Gateway 中的任何阻塞计算。

但是,可能存在一些[阻塞非 IO] 昂贵的操作,例如某些有效负载的加密/解密等。

根据迄今为止的调查,我从实时 Spring Cloud Gateway 应用程序中发现了 2 个线程池。

  • reactor-http-epoll-* :看起来像事件循环线程池
  • boundedElastic-* :看起来像一个后台线程池

问)在有界弹性线程池与事件循环线程池中执行昂贵的 CPU 计算的成本是多少。根据我的理解,我们绝对应该避免事件循环线程池上的任何阻塞代码。

看起来默认情况下所有过滤器都在事件循环线程池上运行。所以卸载到boundedElastic实际上会带来线程切换的成本。