我想了解Azure服务总线支持以下场景的多少:
Worker服务器向未知数量的web服务器通知事件每个web服务器处理消息(处理需要一些时间- 10-30分钟)当每个web服务器完成对第一条消息的处理时,所有web服务器都需要接收新事件。基本上,在对每个web角色执行长时间运行的作业后,我会尝试同步多个web角色。
我可以从Azure服务总线中“免费”获得多少?
发布于 2013-03-24 08:08:48
根据我对你的问题的解释,在我看来,在你确定所有未知数量的服务器都已经处理了他们的消息之前,复杂的部分是不会发送第二条消息。
虽然服务总线将提供发布/订阅和关联功能,这可能会对您有所帮助,但对我来说,您描述了一种模式,在这种模式中,服务器将注册它们的兴趣,并确认它们已经处理了它们的消息,因此一些东西将计数ack,一旦每个人都确认了,第二条消息就会被发送。
这种编排不是服务总线可以帮助你的。这使您可以在worker角色中构建内容,或者当BizTalk在VM角色中可用时使用它。
类似于长时间运行的BizTalk编排来处理注册、跟踪确认以及向web服务器发布与pub sub的服务总线主题相结合的新消息,可以实现这一点。
发布于 2013-03-09 02:32:48
Azure Service Bus有许多丰富的消息传递功能,可以帮助您处理需求的发布/订阅方面以及请求/响应关联。会话(分组/相关)消息以及会话状态的概念在这里非常有用。以下是一些可能有帮助的特定链接:关于会话的MSDN文章:http://msdn.microsoft.com/en-us/magazine/jj863132.aspx
使用会话的示例:http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-Session-41c43fb4
请求/响应示例:http://code.msdn.microsoft.com/windowsazure/Brokered-Messaging-Request-0ce8fcaf
谈相关性等:http://channel9.msdn.com/Blogs/Subscribe/Service-Bus-Messaging-Deep-Dive
发布于 2013-07-02 16:02:24
您可能还想看看最近发布的服务总线持久任务框架预览here。有关如何使用此框架的一些示例,请参阅here。
基本上,在sessions等服务总线特性之上使用此框架,您可以编写一些C#编排代码,其功能大致如下:
...
// phase 1
List<Task> taskList = new List<Task>();
foreach (var serverName in serverList)
{
taskList.Add(context.ScheduleTask<object>(typeof(ExecutePhase1OnWebServerActivity), serverName));
}
// wait for all of the executions to finish
await Task.WhenAll(taskList);
// phase 2
taskList = new List<Task>();
foreach (var serverName in serverList)
{
taskList.Add(context.ScheduleTask<object>(typeof(ExecutePhase2OnWebServerActivity), serverName));
}
await Task.WhenAll(taskList);
...https://stackoverflow.com/questions/15285862
复制相似问题