gpt4 book ai didi

c# - 将工作扩展到多台机器的最佳方式是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:12:23 25 4
gpt4 key购买 nike

我们正在开发一个 .NET 应用程序,它必须对第 3 方网络服务进行数以万计的小型网络服务调用。我们更喜欢更“粗壮”的调用,但第 3 方不支持它。我们已经将客户端设计为使用可配置数量的工作线程,并且通过测试拥有针对一台多核机器优化得相当好的代码。然而,我们仍然想提高速度,并正在考虑将工作分散到多台机器上。我们精通典型的客户端/服务器/数据库应用程序,但对多台机器的设计还是陌生的。那么,与此相关的几个问题:

  • 除了多线程之外,是否还有任何其他客户端优化值得我们关注以提高 http 请求/响应的速度? (我应该注意到这是一个非标准的网络服务,因此是使用 WebClient 实现的,而不是 WCF 或 SOAP 客户端)
  • 我们目前的想法是使用 WCF 将工作 block 发布到 MSMQ,并在一台或多台机器上运行客户端以从队列中提取工作。我们有使用 WCF + MSMQ 的经验,但希望确保我们不会错过更好的选择。今天还有其他更好的方法可以做到这一点吗?
  • 我见过一些第 3 方工具,例如 DigiPede 和 Microsoft 的 HPC 产品,但这些工具似乎有些矫枉过正。对这些产品有任何经验或我们应该考虑使用它们而不是自己生产的原因吗?

最佳答案

听起来您的目标是尽可能快地执行所有这些网络服务调用,并将结果制成表格。鉴于此,您最大的效率控制将通过扩展您可以发出的并发请求的数量来实现。

一定要看看你的client-side connection limits .默认情况下,我认为系统默认是2个连接。我自己还没有尝试过,但是通过增加与此属性的连接数,理论上您应该看到通过从一台机器生成更多连接来生成更多请求方面的乘数效应。有 more info在 MS 论坛上。

MSMQ 选项运行良好。我自己正在运行该配置。 ActiveMQ 也是一个很好的解决方案,但 MSMQ 已经在服务器上。

你的出发点很好。让它投入运行,然后转向性能和吞吐量。

关于c# - 将工作扩展到多台机器的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com