【发布时间】:2016-05-10 19:39:11
【问题描述】:
我必须在点对点消息传递架构中处理大约 100 个 JMS 队列。每个队列都有一个消费者。所以我将有 100 个消费者线程来处理它们。还好吗?
【问题讨论】:
标签: java jakarta-ee jms activemq
我必须在点对点消息传递架构中处理大约 100 个 JMS 队列。每个队列都有一个消费者。所以我将有 100 个消费者线程来处理它们。还好吗?
【问题讨论】:
标签: java jakarta-ee jms activemq
1)ActiveMQ 支持你的请求(建议写一个连接池) 2)您应该确认您的服务器配置是否正常,何时 QPS高,
【讨论】:
您可以使用单个队列并提供 JMS 消息属性,而不是 100 个队列,让每个消费者只过滤它想要的消息。
这样做是在架构和部署方面为您提供了更多选择。您可以让一个进程使用多种类型的消息。根据您的扩展问题,您可以将单个消费者的多个实例分布在进程/服务器/其他任何地方。
您还可以为所有 100 个逻辑队列设置一个使用者,读取属性并确定在内部传递消息的位置,这取决于您遇到的任何设计问题。
总体而言,消息传递是如此轻量级,以至于需要大量消息或大量单个消息才能真正造成伤害。我有一个 ActiveMQ 应用程序,在重新启动时可能必须处理 10K/20K 消息,并且在几秒钟内完成。相当小的消息,但仍然很有可能(我对其他 MQ 的经验是类似的性能,只要您的处理不是太困难,您应该能够跟上)。
【讨论】: