0

我安装了一个快速服务,并试图了解处理并发请求的能力。所以我在 Java 中创建了大量线程,并通过RestFUL API发送

毫不奇怪,当请求数量攀升时,程序开始抛出异常。

引起:java.net.ConnectException:连接超时:在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) 在 java.net.AbstractPlainSocketImpl.doConnect( AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) ) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 在 java.net.Socket.connect(Socket.java:579) 在 java.net.Socket.connect(Socket.java:528) 在 sun.net .NetworkClient.doConnect(NetworkClient.java:180) 在 sun.net.www.http.HttpClient.openServer(HttpClient.java:378) 在 sun.net.www.http.HttpClient。openServer(HttpClient.java:473) 在 sun.net.www.http.HttpClient.(HttpClient.java:203)

但是谁能告诉我这是怎么time out回事?我很好奇 SWIFT 如何处理这些请求。是通过对请求进行排队,并且因为队列中的请求太多并且等待太长时间并且它只是被从队列中踢出?如果这成立,是否意味着它是一种处理请求的异步机制?

让它更有趣,有时我也会Connection refused出错Error writing request body to server,这会是另一个可以用机制解释的观察结果吗?

谢谢。

4

1 回答 1

1

Swift 使用 Proxy-Server 来解决过多的并发请求,当您设计 Swift 基础架构时,您可以根据需要添加/删除,尽管建议在生产环境中使用 2 个。

此外,如果您要对 swift 进行基准测试,您应该使用 ssbench https://github.com/swiftstack/ssbench

OpenStack 还具有可用于各种编程语言的 SDK,包括 Java https://wiki.openstack.org/wiki/SDKs#Java

希望能帮助到你。

于 2013-11-14T04:28:47.540 回答