You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成RabbitMQ报java.util.concurrent.TimeoutException如何解决

问题根因

当前报错的核心原因是application.properties中配置的RabbitMQ连接端口错误:

  • 15672是RabbitMQ管理后台的HTTP访问端口,仅用于网页端管理、API调用
  • Spring Boot AMQP客户端需连接RabbitMQ的AMQP协议服务端口,默认值为5672
解决方法

1. 修正配置文件

把application.properties中的spring.rabbitmq.port修改为5672,修正后配置如下:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

server.port=3033

2. 确认RabbitMQ容器端口映射正常

使用rabbitmq:3-management镜像启动容器时,需要同时映射AMQP端口和管理端口,标准启动命令如下:

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

3. 额外排查项(修改端口后仍报错可检查)

  • 访问http://localhost:15672,用guest/guest登录管理后台,确认RabbitMQ服务运行正常
  • 检查本地防火墙、安全组规则,确认5672端口未被拦截
  • 若RabbitMQ部署在非本地服务器,需创建新的用户并授予对应权限,默认guest用户仅允许本地访问
其他注意事项

你当前编写的Controller逻辑是向RabbitMQ发送消息,属于生产者角色,若需要实现消费者功能,还需要添加监听队列的方法,示例如下:

@Component
public class RabbitConsumer {
    @RabbitListener(queues = RabbitConfig.QUEUE)
    public void consumeMessage(Note note) {
        System.out.println("接收到消息:" + note.getNote());
    }
}

内容的提问来源于stack exchange,提问作者user16624394

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:48:03