【问题标题】:Message Queue routing patterns across data centers?跨数据中心的消息队列路由模式?
【发布时间】:2014-09-17 21:19:54
【问题描述】:

所以我使用 Azure 服务总线在 C# 中编写,但这些细节并不重要,因为我正在寻找一种设计模式,而不是代码块。我们在多个数据中心拥有客户数据,并且我们(可以/将)在这些数据中心拥有多个工作进程。我正在尝试做的是能够获取客户列表,按数据中心(唯一标识符)将它们分开,并使用位于同一数据中心的工作人员对客户的数据进行一些处理,所以我们不是t 将大量数据拖到整个大陆。

我倾向于为每个数据中心设置一个单独的队列,但如果我们选择它作为我们的设计模式,我们很快就会遇到大量队列进行监控,每个仓库的每个操作都有一个队列。我曾考虑过主题(多播过滤发布/订阅),但随后您必须路由到数据中心级别的工作人员,并且您的路由器服务开始成为进入数据中心的请求的瓶颈。

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

我很难找到有关跨数据中心的消息队列模式的任何其他信息,所以我希望有人愿意分享一些经验。

【问题讨论】:

    标签: .net azure service message-queue


    【解决方案1】:

    我可能遗漏了一些东西,但您可以尝试使用 Azure ServiceBus 代理消息传递吗?

    1. 定义自定义属性以填充数据中心信息
    2. 为每个新工作项发布消息,并使用特定数据中心填充属性
    3. 根据他们所在的数据中心,按此属性进行工作人员过滤
    4. 仅处理与其数据中心相关的消息

    代理消息:http://msdn.microsoft.com/en-us/library/azure/hh532019.aspx

    【讨论】:

    • 我的印象是订阅者只能过滤主题,而不是队列。我还没有找到任何关于队列中订阅者过滤的文档。可以过滤主题,但主题是广播的,它们不支持竞争消费者。
    猜你喜欢
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2021-05-31
    • 2012-02-06
    相关资源
    最近更新 更多