【问题标题】:Is it ok to use multiple session and connection on JMS (ActiveMQ)?在 JMS (ActiveMQ) 上使用多个会话和连接可以吗?
【发布时间】:2016-05-10 19:39:11
【问题描述】:

我必须在点对点消息传递架构中处理大约 100 个 JMS 队列。每个队列都有一个消费者。所以我将有 100 个消费者线程来处理它们。还好吗?

【问题讨论】:

    标签: java jakarta-ee jms activemq


    【解决方案1】:

    1)ActiveMQ 支持你的请求(建议写一个连接池) 2)您应该确认您的服务器配置是否正常,何时 QPS高,

    【讨论】:

      【解决方案2】:

      您可以使用单个队列并提供 JMS 消息属性,而不是 100 个队列,让每个消费者只过滤它想要的消息。

      这样做是在架构和部署方面为您提供了更多选择。您可以让一个进程使用多种类型的消息。根据您的扩​​展问题,您可以将单个消费者的多个实例分布在进程/服务器/其他任何地方。

      您还可以为所有 100 个逻辑队列设置一个使用者,读取属性并确定在内部传递消息的位置,这取决于您遇到的任何设计问题。

      总体而言,消息传递是如此轻量级,以至于需要大量消息或大量单个消息才能真正造成伤害。我有一个 ActiveMQ 应用程序,在重新启动时可能必须处理 10K/20K 消息,并且在几秒钟内完成。相当小的消息,但仍然很有可能(我对其他 MQ 的经验是类似的性能,只要您的处理不是太困难,您应该能够跟上)。

      【讨论】:

      • 100个队列一个消费者,一个队列必须有一个消费者,怎么办? (我不想使用主题)
      • 另外,我的消息系统是集成系统的一部分。对方使用的是 Node.js,他们的 stomp-client 必须接收 json 消息。因此,JMS 消息不可用:(
      • 可以让一个进程连接到任意数量的队列,或者正如我所提到的,使用单个队列和基于 JMS 属性的过滤器,部分取决于消息的定义方式或它们的不同之处.很有可能,我做到了。
      • 对方只能接收json消息,不能发送或读取JMS属性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 2015-04-11
      • 1970-01-01
      相关资源
      最近更新 更多