【问题标题】:Is message queuing still a good answer?消息队列仍然是一个好的答案吗?
【发布时间】:2014-02-22 04:47:24
【问题描述】:

在过去的十几年里,我研究并使用了 IBM 的 MQSeries 和 Websphere MQ 软件。对于连接不同公司、不同位置的两个应用程序来说,这似乎是一个很好的解决方案:每个公司的应用程序可以通过本地机器上的 MQSeries 发送一条消息,MQSeries 会将它传输到另一家公司的机器上,然后应用程序那边会在本地接收消息。

快进到今天:我不再为 IBM 工作,但我正在尝试解决类似的问题。我的应用程序需要每天向远程公司的应用程序发送几条消息,每条消息数 MB 或更少,并收到类似数量的较小回复。

消息队列中间件仍然是满足这种架构需求的好方法吗?我一直在尝试用 RabbitMQ 对此进行原型设计,但上面的内容似乎与 RabbitMQ 无关。我是不是找错了兔子洞?

【问题讨论】:

    标签: rabbitmq message-queue ibm-mq amqp


    【解决方案1】:

    当然可以 - 如果远程公司打算为其他人提供相同的服务,而不仅仅是您。

    也许您需要 WMQ 低延迟,因为不需要服务器。
    - WebSphere MQ 低延迟消息传递与 WebSphere MQ、WebSphere Message Broker 和 WebSphere Application Server 等传统 WebSphere 产品的不同之处在于没有安装和配置的产品基础架构,例如队列管理器、消息代理或应用程序服务器。因此,没有特定的产品组件需要监控、测量和管理。

    http://www-03.ibm.com/software/products/en/wmq-llm http://pic.dhe.ibm.com/infocenter/wllm/v2r5/index.jsp?topic=%2Fcom.ibm.wllm.doc%2Fintroductiontowebspheremqlowlatencymessaging.html

    当然,一个简单的 RESTful Web 界面或许能够提供相同的功能。

    我不建议编写 TCP 套接字应用程序 - 既然有这么多产品可以为您完成中等重量和中等重量的提升,为什么还要进行所有中等重量的提升?您只想做轻量级的提升 - 发送请求,获得响应 - 6 2 甚至,一遍又一遍。

    您需要重新制定需求清单: - 可靠性 - 如果请求或响应丢失,有多重要? - 可恢复性 - 如果应用程序崩溃,可以恢复并重新发送正在运行的消息吗? - 往返时间 - 延迟的一侧 - 1:1 服务?多对一?

    我希望这会有所帮助。 戴夫

    【讨论】:

      【解决方案2】:

      WebSphere MQ 仍然可以解决您的问题...我认为该场景是与 Request-Response 场景的点对点通信。您可以使用一些相对较新的东西,例如与您的应用程序很好地集成的 JMS。

      但是,如果您非常确定它只有 2 个应用程序可以相互通信,并且不会出现网络问题,那么您可以进行简单的套接字通信。

      解决问题的另一种方法是在两个应用程序之间共享一个公共数据库。

      【讨论】:

        猜你喜欢
        • 2011-02-09
        • 1970-01-01
        • 2013-12-25
        • 2016-03-19
        • 2017-02-21
        • 2023-01-19
        • 2014-05-24
        • 2016-03-28
        • 2010-11-23
        相关资源
        最近更新 更多