我安装了一个swift服务,并试图了解处理并发请求的能力。所以我在Java中创建了大量的线程,并通过RestFUL API
发送毫不奇怪,当请求数量增加时,程序开始抛出异常。
引起:java.net.ConnectException:连接超时:connect at java.net.DualStackPlainSocketImpl.connect0(Native Method)at 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)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)at java.net.Socket.connect(Socket.java:579)at java.net.Socket.connect(Socket.java:528)at sun.net.NetworkClient.doConnect(NetworkClient.java:180)at sun.net.www.http.HttpClient.openServer(HttpClient.java:378)at sun.net.www.http.HttpClient.openServer(HttpClient.java:473)at sun.net.www.http.HttpClient。(HttpClient.java:203)
但有谁能告诉我time out
是怎么发生的?我很好奇SWIFT如何处理这些请求。这是通过排队请求,因为队列中有太多的请求,等待太长时间,它只是从队列中被踢出?如果这成立,是否意味着它是一种处理请求的异步机制?
让它变得更有趣,有时候我也会遇到Connection refused
错误和Error writing request body to server
,这会是另一种可以用机制解释的观察结果吗?
感谢。
答案 0 :(得分:1)
Swift使用Proxy-Server来处理过多的并发请求和在设计Swift基础架构时,您可以根据需要添加/删除,尽管建议在生产环境中使用2个。
此外,如果您使用swift进行基准测试,则应使用ssbench https://github.com/swiftstack/ssbench
OpenStack还提供适用于各种编程语言的SDK,包括Java https://wiki.openstack.org/wiki/SDKs#Java
希望它有所帮助。