Jms 中间件消息传递软件性能低下的影响因素
我计划在我的web应用程序中集成消息传递中间件。现在我正在测试不同的消息中间件软件,如RabbitMQ、JMS、HornetQ等。。 该软件提供的示例正在运行,但未达到预期效果。Jms 中间件消息传递软件性能低下的影响因素,jms,messaging,rabbitmq,middleware,hornetq,Jms,Messaging,Rabbitmq,Middleware,Hornetq,我计划在我的web应用程序中集成消息传递中间件。现在我正在测试不同的消息中间件软件,如RabbitMQ、JMS、HornetQ等。。 该软件提供的示例正在运行,但未达到预期效果。 因此,我想知道哪些因素是提高绩效的原因,我们应该关注这些因素? 开发人员应该注意哪些方面来提高中间件消息传递软件的性能?我是HornetQ的项目负责人,但我会尝试给您一个通用的答案,可以应用于您选择的任何消息系统 我看到的一个常见问题是,人们会问,为什么单个生产商/单个消费者无法提供预期的性能 当您发送消息并要求立即确
因此,我想知道哪些因素是提高绩效的原因,我们应该关注这些因素?
开发人员应该注意哪些方面来提高中间件消息传递软件的性能?我是HornetQ的项目负责人,但我会尝试给您一个通用的答案,可以应用于您选择的任何消息系统 我看到的一个常见问题是,人们会问,为什么单个生产商/单个消费者无法提供预期的性能 当您发送消息并要求立即确认时,您需要等待:
- 从客户端到服务器的消息传输
- 正在磁盘上持久化的消息
- 服务器通过向客户端发送回调来确认收到消息
- ACK从客户端发送到服务器
- 确认被持久化
- 服务器发回一个回调,说明回调已实现
- 一种是使用事务。因此,在服务器上持久化和网络上的往返时,可以最小化在磁盘上执行的块和同步。(这在任何数据库上实际上都是相同的)
- 另一种方法是使用回调,而不是在使用者处阻塞。(JMS 2提出了一个类似于HornetQ上的ConfirmationHandler的回调)
另外:我认识的大多数供应商在他们的文档中都会有一个性能部分,其中包含对特定产品的要求和建议。您应该逐个查看每种产品您可以接受答案,还是讨论您为什么不接受?如果您不接受答案,请向我提供一些信息,说明原因,以便我们可以帮助您。