我需要帮助将我的设计融入Azure。

时间:2012-11-13 20:06:01

标签: architecture azure azureservicebus

enter image description here

我猜我想在所有服务器端处理(Scrubbing,Augmenting,Social Profiles和Email Notifications)之前使用某个版本的Azure Service Bus。

Azure Service Bus上的文档对我来说非常神秘,我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

将所有处理移出您的Web角色绝对是个好主意。服务总线队列肯定会起作用。另一种选择是使用Azure Storage queues代替。您可能会发现它们更容易理解,因为它们是通过HTTP排队概念的相对直接的实现,并且.NET客户端库非常好。我相信它们往往也会更便宜。

还有很多方法可以分解后台处理。你可以:

  1. 使用Web角色作为工作人员,通过在WebRole.Run()方法中启动工作线程来完成工作。
  2. 让一名工作人员连续完成所有阶段。
  3. 让一个工作人员分别完成所有阶段,每个阶段之间有另一个队列。
  4. 每个阶段有多个工人,甚至多个工人。
  5. 取决于工作的资源密集程度以及需要多快完成,一种方法可能比其他方法更好。更密集的处理往往会导致您进一步深入该列表。

答案 1 :(得分:0)

这取决于此项目/产品的复杂程度以及您拥有的交易数量......但正如您所提到的,您可以使用服务总线队列来:

  1. 接收消息并临时将它们存储在FIFO队列中
  2. 将它们传递给特定的职能角色:“擦洗联系人”工作者角色
  3. 将邮件传递回队列/存储
  4. 有什么好处是你可以有一个工作者角色执行4个特定任务:擦除消息,增加数据,拉动社交个人资料,电子邮件通知。您可以根据消息选择功能。

    您可以将一条消息发送到队列,将队列传递给工作者角色告诉它“擦除消息”,传递回队列,队列将其传递给工作者角色“扩充数据”等。

    或者您可以拥有一个服务总线队列并执行“清理消息,增加数据,提取社交个人资料,发送电子邮件通知”等等

    这样做的好处是Service Bus队列管理FIFO传统消息传递功能。此外,您还有一个松散耦合的工作者角色系统,可以根据需要大幅度扩展以增加消息处理。