我们正在开发一个 .NET 应用程序,它必须对第 3 方 Web 服务进行多达数万次小型 Web 服务调用。我们更喜欢更“矮胖”的电话,但第 3 方不支持它。我们将客户端设计为使用可配置数量的工作线程,并通过测试获得了针对一台多核机器进行了相当优化的代码。但是,我们仍然希望提高速度,并且正在考虑将工作分散到多台机器上。我们精通典型的客户端/服务器/数据库应用程序,但对多台机器的设计却很陌生。因此,与此相关的几个问题:
- 除了多线程之外,是否还有其他客户端优化可以提高 http 请求/响应的速度?(我应该注意这是一个非标准的 web 服务,所以是使用 WebClient 实现的,而不是 WCF 或 SOAP 客户端)
- 我们目前的想法是使用 WCF 将工作块发布到 MSMQ,并在一台或多台机器上运行客户端以将工作从队列中拉出。我们有使用 WCF + MSMQ 的经验,但要确保我们不会错过更好的选择。今天还有其他更好的方法吗?
- 我见过一些 3rd 方工具,例如 DigiPede 和 Microsoft 的 HPC 产品,但这些似乎有点矫枉过正。对这些产品有任何经验或我们应该考虑使用它们而不是我们自己的产品吗?