环境

云服务器使用docker容器来运行rabbitmq
Spring Boot 2.3.7.RELEASE



<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>

application.yml

# 应用服务 WEB 访问端口
server:
  port: 8004

# 应用名称
spring:
  application:
    name: demo-10-stream-rabbitmq-provider
  cloud:
    stream:
      binders:
        defaultRabbit:
          type: rabbit
          environment:
            spring:
              rabbitmq:
                host: 120.37.100.249
                # 默认是5672,但我进行了端口映射
                port: 5676
                username: zg
                password: password
      bindings:
        output:
          destination: studyExchange
          content-type: application/json
          binder: defaultRabbit

使用该配置后的异常信息
error
控制台日志
log
第一次试图连接访问的就是application.yml中配置的地址(121.37.199.247:5676),此时已经连接成功;

但是程序还会在之后进行第二次连接(进行健康检查时),此时访问的地址就是localhost:5672。但在我本地环境中并没有安装rabbitmq环境,所以直接报IOException。
在这里插入图片描述



解决方法:
配置 spring.rabbitmq ,而不使用默认的。

# 应用服务 WEB 访问端口
server:
  port: 8004

# 应用名称
spring:
  application:
    name: demo-10-stream-rabbitmq-provider
  rabbitmq:
    host: 120.37.100.249
    port: 5676
    username: zg
    password: password
  cloud:
    stream:
      binders:
        defaultRabbit:
          type: rabbit
      bindings:
        output:
          destination: studyExchange
          content-type: application/json
          binder: defaultRabbit
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐