我使用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服务器)
答案 0 :(得分:1)
没有硬限制,但连接数肯定是有限的。根据您的硬件和操作系统,限制可以从数百个同时连接到数千个不等。
当您连接到端点时,内置HTTPServer将接受连接并将其交给处理程序。如果传入请求过快,HTTPServer必须将这些连接放入队列中以创建积压。积压有限。达到此限制时,将拒绝新连接,并在客户端上看到错误。
您可以通过执行类似的操作来增加积压工作
server = HttpServer.create(address, 128);
这可能会延迟错误,但如果您发送的请求速度超过服务器可以消化的速度,您最终会得到错误。