临时队列的性能和限制

时间:2014-09-26 11:42:07

标签: jms hornetq mom apollo

我想要一堆数百个客户端应用程序在一个中间件实例上创建和使用临时队列。

对于我不应该使用临时队列的性能有什么缺点吗?有没有限制,例如有多少温度。可以根据HornetQ实例创建队列吗?

1 个答案:

答案 0 :(得分:1)

在最近的一个项目中,我们已经从使用临时队列切换到在SonicMQ上使用静态队列。我们已经通过JMS实现了同步服务调用,其中每个调用的响应将在由使用者创建的专用临时队列上传递。在压力测试期间,我们注意到临时队列创建和分配资源的开销在推动解决方案的最大吞吐量时开始发挥越来越大的作用。

我们更改了解决方案,因此它将在使用者和提供者之间使用静态队列,并使用选择器来关联JMSCorrelationID。这导致了我们的情况下更好的吞吐量。如果您计划每次(重新)创建客户端应用程序将使用的临时队列,那么当需要更高的吞吐率时,它可能会开始影响性能。

请注意,当队列中的消息数量增加时,选择器性能也可以开始播放。在我们的例子中,该解决方案旨在尽快切换消息,而不是在消费者和提供者之间扮演(存储)缓冲区的角色。因此,队列中的消息数量总是很低。