我们正在开发一个 .NET 应用程序,它必须对第三方 Web 服务进行多达数万次的小型 Web 服务调用。我们更喜欢更“笨拙”的调用,但第 3 方不支持它。我们将客户端设计为使用可配置数量的工作线程,并通过测试为一台多核机器优化了代码。但是,我们仍然希望提高速度,并且正在考虑将工作分散到多台机器上。我们精通典型的客户端/服务器/数据库应用程序,但不熟悉多台机器的设计。因此,与此相关的几个问题:
最佳答案
听起来您的目标是尽可能快地执行所有这些 Web 服务调用,并将结果制成表格。鉴于此,您最大的效率控制将是通过扩展您可以发出的并发请求的数量。
请务必查看您的 client-side connection limits 。默认情况下,我认为系统默认是 2 个连接。我自己没有尝试过,但是通过增加具有此属性的连接数,理论上您应该会看到通过从一台机器生成更多连接来生成更多请求的乘数效应。 MS 论坛上有 more info。
MSMQ 选项运行良好。我自己正在运行该配置。 ActiveMQ 也是一个很好的解决方案,但 MSMQ 已经在服务器上。
你有一个很好的起点。使其运行,然后转向性能和吞吐量。
关于c# - 将工作扩展到多台机器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/554024/