HTTP线程池和JNDI数据源连接池

时间:2015-04-14 10:34:54

标签: java spring jdbc jboss wildfly

我正在寻找一些关于如何在jboss / wildfly中配置线程池以处理http请求的最佳实践和建议,与JNDI数据源的连接池的大小进行比较。

虽然服务器上还运行其他Web应用程序,但新的Web服务应用程序使用Spring安全性进行身份验证,该安全性通过JNDI检索的JDBC数据源调用我的数据库。如果在进行身份验证时抛出异常,Spring安全性会将其解释为身份验证失败并返回401,这是有道理的。

我们将限制作为自定义Spring安全过滤器实现,该过滤器按用户逐个端点地依据用户工作,并且需要在应用之前查找身份验证。

当用jmeter锤击服务来测试限制时,我开始看到401响应回来,因为没有更多的JDBC连接可用。本质上,jboss / wildfly有足够的HTTP线程来处理请求,但没有足够的JDBC连接来匹配。

我不愿意增加数据源连接池以匹配HTTP线程池,因为这看起来很愚蠢。我想知道是否有关于这个问题的最佳实践。目前我正在考虑在Spring安全异常处理中添加一些额外的东西来检查抛出的异常,如果它不在JDBC连接中则返回503。

1 个答案:

答案 0 :(得分:1)

理想情况下,您的http线程将等待数据库连接池返回连接对象,因此检查等待时间可能非常小。