跨数据中心的Message Queue路由模式?

时间:2014-07-25 22:40:35

标签: .net azure service message-queue

所以我使用Azure Service Bus编写C#,但这些细节并不重要,因为我正在寻找设计模式,而不是代码块。我们在多个数据中心拥有客户数据,我们(可以/将会)在这些数据中心拥有多个工作流程。我正在尝试做的是能够获取客户列表,通过数据中心将其拆分(唯一标识符),并使用位于同一数据中心的工作人员对客户端数据进行一些工作,这样我们就不会拖拽整个非洲大陆的大量数据。

我倾向于为每个数据中心设置一个单独的队列,但是如果我们选择这个作为我们的设计模式,我们会很快地运行到大量的队列来监控,每个仓库每个操作一个。我想到了主题(多播过滤的pub / sub),但是你必须在数据中心级别路由到工作人员,并且你的路由器服务开始成为进入数据中心的请求的瓶颈。

另一个问题是最小化配置重复:工作人员如何知道它所在的数据中心以及它应该寻找的队列?消息创建者如何知道要使用哪些队列?在路由自己的消息方面,他们是否需要了解数据中心?它们应该是吗?

我在寻找跨越数据中心的消息排队模式的任何其他信息方面遇到了很多麻烦,因此我希望有人有一些他们愿意分享的经验。

1 个答案:

答案 0 :(得分:0)

我可能会遗漏一些内容,但您是否可以尝试使用Azure ServiceBus代理消息传递?

  1. 定义自定义属性以填充数据中心信息
  2. 使用填充了特定数据中心的属性发布每个新工作项的消息
  3. 根据此属性对工作进行过滤,具体取决于它们位于
  4. 中的数据中心
  5. 仅处理与其数据中心相关的消息
  6. BrokeredMessaging:http://msdn.microsoft.com/en-us/library/azure/hh532019.aspx