我想知道在制作大量数量的时间敏感型网络服务电话时,您是否可以分享最佳做法和常见错误。
在我的情况下,我有一个SOAP和基于XML-RPC的Web服务,我一直在打电话。我预测这很快就会成为一个问题,因为每秒的通话次数会增加。
在更高层次上,我正在考虑批量处理这些调用并每隔100毫秒将这些调用提交给Web服务。你能分享一下还有什么用吗?
在事情的较低层面,我使用Apache Xml-Rpc客户端和标准javax.xml.soap。*包来实现我的客户端。您是否了解与这些软件包相关的任何客户端可伸缩性技巧/提示/警告?
提前致谢
尤里
答案 0 :(得分:0)
有一点需要注意的是,在JavaScript中,你总是处理事件泵:发生一些浏览器事件,或者计时器到期,然后执行一大堆JavaScript。考虑到这种执行模型,你真的不想考虑定期批处理和发送过程 - 你想要做的是将一个事件泵中发生的所有调用(javascript执行的大块)批处理在一起响应浏览器中的一个事件并将其发送出去。
这是通过更改你的rpc代码来完成的,这样每个调用都会将带有参数和回调函数的调用排队到一个全局数组中,如果它正在排队第一个调用,它还会调度setTimeout(..., 0)
一个将发送的函数关闭队列中的所有内容并清除阵列。
从那开始,然后您可以稍后使用其他执行模型进行实验,例如在您获得第一个请求时立即启动它,并在当前事件泵完成后批量发送其他所有请求。