首页 文章

OpenStack Swift如何处理并发的RESTful API请求?

提问于
浏览
0

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

毫不奇怪,当请求数量增加时,程序开始抛出异常 .

引起:java.net.ConnectException:连接超时:连接java.net.DualStackPlainSocketImpl.connect0(本机方法)java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)at 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)at java.net.Socket.connect(Socket.java:528)at sun . net.netNetworkClient.doConnect(NetworkClient.java:180)at sun.net.www.http.HttpClient.openServer(httpClient.java:378)at 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 ,这会是另一种可以用机制解释的观察吗?

谢谢 .

1 回答

  • 1

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

    此外,如果你是swift的基准测试,你应该使用ssbench https://github.com/swiftstack/ssbench

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

    希望能帮助到你 .

相关问题