发布的端点是否具有有限数量的连接? [Java 1.6.0_16]

时间:2009-11-24 02:46:29

标签: java web-services httpserver

我使用import javax.xml.ws.Endpoint和使用Service.create和service.getPort连接到它的客户端创建了一个Web服务。 现在,只使用少量连接时,一切都运行得很好......

但是 - 如果我启动可以说1000个并发连接(客户端)到我的Web服务我得到以下“有时”

com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect
... then it works ...
... works again ...
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect
... works ...
... works ...

(你明白了)

但这不一致......所以我想知道......有限制吗? (我使用的是JDK提供的轻量级HTTP服务器)

1 个答案:

答案 0 :(得分:1)

没有硬限制,但连接数肯定是有限的。根据您的硬件和操作系统,限制可以从数百个同时连接到数千个不等。

当您连接到端点时,内置HTTPServer将接受连接并将其交给处理程序。如果传入请求过快,HTTPServer必须将这些连接放入队列中以创建积压。积压有限。达到此限制时,将拒绝新连接,并在客户端上看到错误。

您可以通过执行类似的操作来增加积压工作

   server = HttpServer.create(address, 128);

这可能会延迟错误,但如果您发送的请求速度超过服务器可以消化的速度,您最终会得到错误。