【问题标题】:*Client* scalability for large numbers of remote web service calls*客户端*可扩展大量远程 Web 服务调用
【发布时间】:2011-02-13 15:42:00
【问题描述】:

我想知道您能否分享在进行大量时间敏感的 Web 服务调用时的最佳做法和常见错误。

在我的例子中,我有一个 SOAP 和一个基于 XML-RPC 的 Web 服务,我不断地调用它们。我预测随着每秒调用次数的增加,这很快就会成为一个问题。

在更高的层次上,我正在考虑将这些调用批处理并每 100 毫秒将它们提交到 Web 服务。你能分享一下还有什么方法吗?

在底层方面,我使用 Apache Xml-Rpc 客户端和标准 javax.xml.soap.* 包来实现我的客户端。您是否知道这些软件包的任何与客户端可扩展性相关的技巧/提示/警告?

提前致谢

尤里

【问题讨论】:

    标签: java scalability soap-client xmlrpcclient


    【解决方案1】:

    需要意识到的一点是,在 JavaScript 中,您总是在处理事件泵:一些浏览器事件发生,或者计时器到期,然后一大段 JavaScript 被执行。考虑到该执行模型,您真的不想考虑进行定期批处理和发送过程 - 您想要做的是将在一个事件泵中发生的所有调用批处理在一起(执行的 javascript 块响应来自浏览器的一个事件)并将它们发送出去。

    这是通过更改您的 rpc 代码来完成的,这样每次调用都将带有参数和回调函数的调用排队到一个全局数组中,如果它正在排队第一次调用,它还会使用 setTimeout(..., 0) 调度一个将发送所有内容的函数在队列中并清除数组。

    从它开始,然后您可以稍后尝试其他执行模型,例如在获得第一个请求时立即触发它,并在当前事件泵完成后批量发送其他所有内容。

    【讨论】:

    • 我的问题一定更清楚:我说的不是浏览器客户端,而是我的分布式网络中的一个服务器,其中一个服务器可能会产生惊人的数量Web 服务调用其他服务提供者。我所有的服务器平台代码都是用 Java 编写的,使用的库是:Apache XML-RPC 和标准的低级 javax.xml.soap.*
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2013-06-07
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多