我们正在开发一个.NET应用程序,它必须使成千上万的小型Web服务调用到第三方Web服务。我们更喜欢更“矮胖”的电话,但第三方不支持它。我们设计客户端使用可配置数量的工作线程,并通过测试获得针对一个多核计算机进行了相当优化的代码。但是,我们仍然希望提高速度,并且正在研究跨多台机器的工作。我们非常精通典型的客户端/服务器/数据库应用程序,但是对于多台机器的设计来说是新的。所以,有几个相关的问题:向多台机器扩展工作的最佳方式是什么?
- 是否有任何其他客户端优化,除了多线程,我们应该看看可以提高HTTP请求/响应速度? (我应该注意到这是一个非标准的Web服务,所以使用WebClient实现,而不是WCF或SOAP客户端)
- 我们当前的想法是使用WCF将工作块发布到MSMQ,并在一个或多个机器将工作从队列中拉出。我们有WCF + MSMQ的经验,但要确保我们不会错过更好的选择。今天还有其他更好的方法吗?
- 我见过一些像DigiPede和微软的HPC产品的第三方工具,但这些看起来像是矫枉过正。这些产品的任何经验或原因,我们应该考虑他们在我们自己的?
尝试ActiveMQ而不是MSMQ,喜欢它。 – Avram 2009-02-16 18:38:36
根据应用程序的不同,如果您已经在使用SQL Server,那么SQL Server Service Broker而不是MSMQ可能是一个重大胜利。 – MichaelGG 2009-02-16 18:56:17