【问题标题】:HTTP Thread Pooling and JNDI Datasource Connection poolsHTTP 线程池和 JNDI 数据源连接池
【发布时间】:2015-04-14 10:34:53
【问题描述】:

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

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

我们已将节流实现为自定义 Spring 安全过滤器,它在逐个用户、逐个端点的基础上工作,并且需要在应用之前进行身份验证查找。

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

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

【问题讨论】:

    标签: java spring jdbc jboss wildfly


    【解决方案1】:

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

    【讨论】:

    • 确实如此,但如果我要处理 1000 个请求,等待时间会增加。
    • 我加了一个等待时间,所以如果超过这个时间至少会抛出一个异常。尽管速度很慢,但所有请求实际上都正常进行,但这是意料之中的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2021-09-21
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多