Java 当异步连接数超过7时,Jersey卡滞

Java 当异步连接数超过7时,Jersey卡滞,java,ajax,jersey,jax-rs,jersey-2.0,Java,Ajax,Jersey,Jax Rs,Jersey 2.0,我在泽西岛和灰熊岛都有投票。为了测试我的问题,现在我只有AsyncResponse资源,即挂起的请求。像这样: @GET @Produces("application/json") public void asyncGetWithTimeout(@Suspended final AsyncResponse asyncResponse) { asyncResponse.setTimeoutHandler(new TimeoutHandler() { @Override

我在泽西岛和灰熊岛都有投票。为了测试我的问题,现在我只有AsyncResponse资源,即挂起的请求。像这样:

@GET
@Produces("application/json")
public void asyncGetWithTimeout(@Suspended final AsyncResponse asyncResponse) {
    asyncResponse.setTimeoutHandler(new TimeoutHandler() {
        @Override
        public void handleTimeout(AsyncResponse response) {
            response.resume(Response.status(Response.Status.SERVICE_UNAVAILABLE)
                    .entity("{\"response\":\"timeout\"}").header("Access-Control-Allow-Origin", "*").build());
        }
    });
    asyncResponse.setTimeout(30, TimeUnit.SECONDS);
}

所有工作正常,直到暂停请求的数量超过7。然后整个web应用程序就卡住了,即使是常规的同步请求。怎么可能呢,泽西岛上只有7根线吗?对不起,我在并发和web应用程序方面不是很好,只是没想到会出现这种问题。

我解决了这个问题。实际上存在一个客户端问题,称为“每个主机名的最大连接数”。此数字是特定于浏览器/应用程序的。所以我用Chrome测试了我的web应用程序,得到了7。从下表可以看出,我只是错估了1

每个服务器/代理的最大默认同时持久连接数:

Firefox 2:  2
Firefox 3+: 6
Opera 9.26: 4
Opera 12:   6
Safari 3:   4
Safari 5:   6
IE 7:       2
IE 8:       6
IE 10:      8
Chrome:     6

我可以肯定地告诉你,7不是一个让它卡住的神奇数字。。。但我想你已经知道了。总是一样的行为吗?你试过不同的电话组合吗?我的猜测是,你一定是用尽了一些资源,你已经找到了它是什么。原来它是一个神奇的数字=)看看我自己的答案。谢谢你的回复!