WebFlux - Reactor Http Epoll 线程
WebFlux - Reactor Http Epoll threads
我正在使用 Spring webflux。我将数百个并发请求发送到其余端点。当我检查时,只有 4 个线程被共享来处理所有负载。
这正常吗?有没有 spring 属性 来增加这个计数?
- reactor-http-epoll-1
- reactor-http-epoll-2
- reactor-http-epoll-3
- reactor-http-epoll-4
我知道我可以使用 reactor Schedulers 来卸载阻塞工作。我的问题更多 - 这 4 个线程是什么,我们在哪里有这个配置?
默认线程数取决于主机系统的内核数。
请记住,Webflux 会尽量让上述线程保持忙碌,因此您分配了多少线程并不重要,只要它们消耗了 CPU 的全部功能即可。
更多线程将只需要等待轮到他们使用 CPU。
如果性能是一个问题,有多种方法可以获得更好的性能,例如让多个系统具有前端负载平衡器或更多 cpu 个内核,并尝试分析哪些需要时间应用程序。
由于您没有发布任何关于您的设置的信息,因此很难知道什么需要时间。可能存在瓶颈,例如对其他系统的 rest 调用缓慢、多个数据库连接、大型查询、大量数据处理等
但是你看到的是很正常的,在这里回答:
我正在使用 Spring webflux。我将数百个并发请求发送到其余端点。当我检查时,只有 4 个线程被共享来处理所有负载。
这正常吗?有没有 spring 属性 来增加这个计数?
- reactor-http-epoll-1
- reactor-http-epoll-2
- reactor-http-epoll-3
- reactor-http-epoll-4
我知道我可以使用 reactor Schedulers 来卸载阻塞工作。我的问题更多 - 这 4 个线程是什么,我们在哪里有这个配置?
默认线程数取决于主机系统的内核数。
请记住,Webflux 会尽量让上述线程保持忙碌,因此您分配了多少线程并不重要,只要它们消耗了 CPU 的全部功能即可。
更多线程将只需要等待轮到他们使用 CPU。
如果性能是一个问题,有多种方法可以获得更好的性能,例如让多个系统具有前端负载平衡器或更多 cpu 个内核,并尝试分析哪些需要时间应用程序。
由于您没有发布任何关于您的设置的信息,因此很难知道什么需要时间。可能存在瓶颈,例如对其他系统的 rest 调用缓慢、多个数据库连接、大型查询、大量数据处理等
但是你看到的是很正常的,在这里回答: