为Netty服务器上的Spring反应式Web应用程序定义最大并发用户数
SpringWebFlux,使用ProjectReactor在以更高效的方式使用资源方面是非常有希望的。然而,如何计算支持一定数量的用户所需的资源还很不明显 在构建将在Tomcat上运行的标准web应用程序(非反应式)时,您可以简单地定义支持用户所需的webthreads数量。然而,这似乎并不适用于Spring反应式Web应用程序。使用的线程数量少,占用的内存也少,但在过去,您只需定义“每台服务器可用的X个webthreads”,这似乎是不可能的。让我们的sysops和devops朋友有点不高兴为Netty服务器上的Spring反应式Web应用程序定义最大并发用户数,netty,project-reactor,spring-webflux,Netty,Project Reactor,Spring Webflux,SpringWebFlux,使用ProjectReactor在以更高效的方式使用资源方面是非常有希望的。然而,如何计算支持一定数量的用户所需的资源还很不明显 在构建将在Tomcat上运行的标准web应用程序(非反应式)时,您可以简单地定义支持用户所需的webthreads数量。然而,这似乎并不适用于Spring反应式Web应用程序。使用的线程数量少,占用的内存也少,但在过去,您只需定义“每台服务器可用的X个webthreads”,这似乎是不可能的。让我们的sysops和devops朋友有点不高兴
这个问题的解决方案是什么?因为很难“销售”一个反应式解决方案,因为它在什么时候会发生故障并不十分确定。我知道服务器线程可以像任何其他指标一样衡量您想要分配给服务器的资源量。这适用于“每个线程一个请求模型”,但也有其自身的限制。您如何通过以下方式衡量效率:
- 像服务器发送事件这样的持久连接
- “慢客户端”,读取HTTP响应真的很慢吗
- 等待阻塞I/O的线程(例如执行远程REST调用)