使Worker角色的多个实例做同样工作的推荐方法是什么?

时间:2013-08-12 23:05:30

标签: c# wcf azure

我的工作人员角色公开 WCF服务并且有多个实例。

我希望我的客户拨打此服务,并使所有实例同时

我正在尝试找出执行分散 - 聚集任务的最佳方式。

(我试图避免服务总线并仅使用WCF)

2 个答案:

答案 0 :(得分:0)

如果没有像服务总线主题这样的话,我想不出任何好办法。或者使用几乎完全相同的自定义功能。你为什么要避免服务总线?

答案 1 :(得分:0)

实际上没有办法同时使用Azure的内置服务对多个服务器实例进行客户端调用。即使使用Service Bus主题,也无法保证多个订阅者同时使用消息并同时执行(即使有消息禁止时间,您仍然不能绝对保证每个订阅者将消费+处理消息确切的时间)。

这需要是应用程序端操作。例如:您可以排队wcf请求。然后,您的队列读取器可以直接连接到每个实例上的内部端点,从而触发并行运行的操作。这不会为您提供完全并行操作,但它将非常接近。作为另一种选择,每个实例可以有多个线程可用,并且您可以在每个线程上运行相同的请求(同样,由您管理)。

从本质上讲,这是您应用的架构方面。 Azure无法促进跨实例的并行调用;你可以利用队列,内部服务等来实现这一目标。