如何为连接请求插入随机延迟(tomcat)?

如何为连接请求插入随机延迟(tomcat)?

我在 Tomcat8.5 上运行某个 Java 应用程序,该应用程序通过 JNI 调用包含较长关键部分(大约需要 1 秒)的 C++ 代码。因此,如果服务器意外地同时收到来自客户端的大量请求(~1000 或更多),JVM 就会调用许多工作线程,从而导致客户端出现非常长的延迟(几分钟)。

为了防止上述情况,我该如何配置服务器(Windows 2016)、Tomcat 或 JVM 参数?

Java 应用程序和 C++(DLL)是黑盒,我无法修改它们的代码。

我的想法是在 Tomcat 的工作线程接受传入请求之前以某种方式插入延迟(随机毫秒),以便分解关键部分。

请给我一些关于网络和 Tomcat 配置的建议。

答案1

这行不通。如果同时收到约 1000 个请求,并且处理每个请求需要约 1 秒的临界区,那么处理所有这些请求将需要约 1000 秒。几毫秒的延迟不会有帮助。

如果不知道该 DLL 的具体功能,就很难提供可能有效的替代方法的建议。

相关内容