gpt4 book ai didi

architecture - 发布/订阅消息中的本地队列与远程队列

转载 作者:行者123 更新时间:2023-12-04 07:09:02 33 4
gpt4 key购买 nike

如果我正在使用消息队列构建一个包含数十个发布者/订阅者的系统,那么我似乎有一些网络配置选项:

  • 我可以拥有一个所有机器都使用的集群代理 - 每台机器都没有本地队列
  • 我可以在每台机器上本地安装代理,并使用存储转发将消息传递到远程机器

  • 不同的技术似乎强制执行不同的配置——例如,MSMQ 要求每台机器都有自己的本地队列,而 Tibco EMS 似乎经常在集群中使用,每个消费者都没有本地队列。

    没有本地队列的缺点是什么,哪些因素会影响决策?

    最佳答案

    没有提供持久消息存储的本地队列意味着您无法保证消息传递。在带有本地代理实例的集群中使用 RabbitMQ 之类的东西可以为您提供一种持久的机制来存储要传递的消息。如果您必须通过网络连接连接到远程代理以发送持久消息,则网络故障的风险会更高。

    MSMQ 也是存储转发,但它不提供任何集群路由功能。这意味着应用程序必须完成这项工作(或者在它之上有一个层,例如 MassTransit 或 NServiceBus 为您完成)。

    当我想到 TIBCO 时,我会想到一个集中的 EMS 服务器集群,应用程序服务器与其进行通信,而不是在本地运行代理实例。围绕 EMS 和 BusinessWorks 应用服务器的 GUI 工具确实在那个世界中建立了一个模型。

    在任何将消息存储在本地的分布式情况下,重要的是要确保机器本身为消息存储正确配备,具有快速磁盘和足够的磁盘用于预期的消息积压/容量。

    关于architecture - 发布/订阅消息中的本地队列与远程队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340334/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com