spring-cloud-gateway - 应该使用哪个线程池在 Spring Cloud Gateway 过滤器中执行昂贵的 cpu 操作?
问题描述
一般来说,最好避免 Spring Cloud Gateway 中的任何阻塞计算。
但是,可能会有一些 [阻塞非 IO] 昂贵的操作,例如某些有效负载的加密/解密等。
根据我目前的调查,我从一个活动的 Spring Cloud Gateway 应用程序中发现了 2 个线程池。
- reactor-http-epoll-* :好像是事件循环线程池
- boundedElastic-* :看起来像一个后台线程池
Q) 在有界弹性线程池与事件循环线程池中执行昂贵的 cpu 计算的成本是多少。根据我的理解,我们绝对应该避免事件循环线程池上的任何阻塞代码。
看起来默认情况下所有过滤器都在事件循环线程池上运行。所以卸载到 boundedElastic 实际上会产生线程切换的成本。
解决方案
推荐阅读
- node.js - 未处理的错误。(错误:无法在当前环境中检测到项目 ID
- windows - 为什么 MSYS2 的 shell 可以在文件夹 /usr/bin 中找到没有“exe”扩展名的二进制文件
- asp.net - 在单个视图中创建表单以及显示数据
- ios - iOS 上的 Web 视图
- pdf - PDF 注释/注释是否可以包含指向 PDF 中其他页面的链接?
- django - 如何按名称和最高时间戳获取对象
- c++ - 如果从函数中给定值,是否需要删除动态结构?
- rust - 将lazy_static 声明为返回 Result<> 的函数的 Ok() 结果
- reactjs - 在“/opt/app/.next”目录中找不到生产版本
- c++ - 在飞镖中使用 C++ std::map