0

在此处输入图像描述

我猜我想在所有服务器端处理(清理、增强、社交配置文件和电子邮件通知)之前使用某个版本的 Azure 服务总线。

Azure 服务总线上的文档对我来说非常神秘,我希望有人能帮助我。

4

2 回答 2

1

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

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

  1. 通过在 WebRole.Run() 方法中启动工作线程来完成工作,将您的 Web 角色用作工作人员。
  2. 让一个工人连续完成所有阶段。
  3. 有一个单独执行所有阶段的工作人员,每个阶段之间有另一个队列。
  4. 每个阶段有多个工人,甚至多个工人。

根据工作的资源密集程度和需要完成的速度,一种方法可能比其他方法更好。更密集的处理往往会使您在该列表中走得更远。

于 2012-11-14T00:24:52.107 回答
0

这取决于该项目/产品的复杂程度以及您有多少事务......但正如您所提到的,您可以使用服务总线队列来:

  1. 接收消息并将它们临时存储在 FIFO 队列中
  2. 将它们传递给特定的功能工作者角色:“scrub contacts”工作者角色
  3. 将消息传回队列/存储

这样做的好处是您可以拥有一个执行 4 项特定任务的工作人员角色:清理消息、增强数据、提取社交资料、电子邮件通知。您可以根据消息选择功能。

您可以让一条消息进入队列,队列将其传递给工作角色,告诉它“清理消息”,传递回队列,队列将其传递给工作角色“增强数据”等。

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

这样做的美妙之处在于服务总线队列管理 FIFO 传统消息传递功能。此外,您拥有一个松散耦合的工作角色系统,可以根据需要进行显着扩展以增加消息处理。

于 2012-11-13T21:06:20.853 回答