减少Wildfly连接超时

时间:2018-03-22 11:59:05

标签: java java-ee connection wildfly

我在wildfly上运行的java应用程序中遇到资源缺乏问题。 它正在对其他REST资源进行大量API调用,如果其中一个API:s速度变慢,我们的系统也会停止运行。

后端系统在14秒内没有响应。所以我希望我的应用程序在4秒后打破连接。 "问题"是我们使用Client中的ClientBuilderjavax.ws.rs.client,我们使用wildfly作为实现。

所以我不知道如何设置这个超时参数。它似乎不可能来自代码,而且我对于哪个wildfly子系统受到影响以及要设置的属性感到非常遗憾。

之前是否有人这样做并且知道如何设置超时?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

因此,由于wildfly捆绑了resteasy,你必须为特定的实现实现超时。那或者强迫野生动物使用别的东西。因为在野生动物身上强行穿着运动衫似乎不是最好的想法(或最简单的)我配置它。

http://blog.eisele.net/2014/12/setting-timeout-for-jax-rs-20-resteasy-client.html

import javax.ws.rs.client.Client;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;

 Client client = new ResteasyClientBuilder()
                .establishConnectionTimeout(100, TimeUnit.SECONDS)
                .socketTimeout(2, TimeUnit.SECONDS)
                .build();

我在pom.xml中添加了以下内容:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.0.19.Final</version>
    </dependency>

答案 2 :(得分:0)

鉴于 establishConnectionTimeoutsocketTimeout 均已弃用。

redhat website 对 jboss v7.3 的解释:

<块引用>

以下符合 ClientBuilder 规范的方法替换了某些已弃用的 RESTEasy 方法:

  • connectTimeout 方法取代了 establishConnectionTimeout 方法。

    • connectTimeout 方法确定客户端在建立新的服务器连接时必须等待多长时间。
  • readTimeout 方法取代了 socketTimeout 方法。

    • readTimeout 方法确定客户端必须等待服务器响应的时间。

这对我有用 RestEASY 3.12.1.Final

    private Client clientBuilder() {
        return new ResteasyClientBuilder()
            .connectTimeout(2, TimeUnit.SECONDS)
            .readTimeout(10, TimeUnit.SECONDS)
            .build();
    }
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-client</artifactId>
            <version>3.12.1.Final</version>
        </dependency>