Amq 发送第一条消息到主题的时间太长

问题描述 投票:0回答:1

我正在使用 spring-integration 生成发送到 AMQ 主题的消息。应用程序启动/重新启动时发送第一条消息需要 3 到 4 秒,而发送第一条消息后的消息则需要 40 到 50 毫秒。创建连接工厂/为第一条消息与代理建立连接可能需要 3 到 4 秒。

`

java spring spring-integration amq spring-integration-amqp
1个回答
0
投票

当第一次沟通时,会发生很多事情,或者换句话说,有些事情是第一次发生。例如以下可能是原因,或者换句话说主要是原因:

创建连接:第一次发送消息时,将使用 AMQ 代理创建连接。这有很多东西,比如网络通信、身份验证。会话设置等,这通常需要一些时间。

资源管理:第一个消息,Spring集成需要分配,然后配置资源,例如ConnectionFactory,Connection,Session,Message Producer,这通常是一个单一的时间成本,对于以后的消息来说不会发生。

其他因素: 解决目的地 JMS 提供程序启动

现在来说说解决方案: 调整连接,以便在应用程序启动期间设置所有 JMS 连接相关资源。当您启动应用程序建立连接时,只需向虚拟主题发送一条虚拟消息即可使连接过程在启动期间完成。

也许使用连接池,这允许重用连接而不是每次创建新连接。

如果可以并且您的应用程序允许并且以发送异步消息的方式设计,请尝试这样做,这样您的应用程序就不必等待连接。

© www.soinside.com 2019 - 2024. All rights reserved.