当前位置: 代码迷 >> 综合 >> org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connec
  详细解决方案

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connec

热度:7   发布时间:2024-03-07 08:38:01.0

使用 docker RabbitMQ 容器, org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connec 无法连接

报错异常:

在这里插入图片描述
下面是我的配置 application.yml

server:port: 8801spring:application:name: cloud-stream-providercloud:stream:binders: # 在此处配置要绑定的rabbitmq的服务信息;defaultRabbit: # 表示定义的名称,用于于binding整合type: rabbit # 消息组件类型environment: # 设置rabbitmq的相关的环境配置spring:rabbitmq:host: 华为云ip// localhostport: 5672username: guestpassword: guestbindings: # 服务的整合处理output: # 这个名字是一个通道的名称destination: studyExchange # 表示要使用的Exchange名称定义content-type: application/json # 设置消息类型,本次为json,文本则设置“text/plain”binder: defaultRabbit # 设置要绑定的消息服务的具体设置eureka:client: # 客户端进行Eureka注册的配置service-url:defaultZone: http://localhost:7001/eurekainstance:lease-renewal-interval-in-seconds: 2 # 设置心跳的时间间隔(默认是30秒)lease-expiration-duration-in-seconds: 5 # 如果现在超过了5秒的间隔(默认是90秒)instance-id: send-8801.com  # 在信息列表时显示主机名称prefer-ip-address: true     # 访问的路径变为IP地址

这里有个大坑,application.yml使用了spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.xx

来配置rabbitmq的环境如果你是用的其他服务器上的rabbitmq,比如我使用的我自己的华为云服务器然后创建docker容器来运行

rabbitmq。按照视频中的配置方式的话,启动时会试图连接两次rabbitmq程序第一次试图连接访问的就是application.yml中配置

的地址,此时已经订阅成功了但是程序还会在之后进行第二次连接,此时访问的地址就是localhost:5672,在我的环境中,我本地

没有rabbitmq环境,所以直接报IOException所以,如果是使用的自己的服务器来配置,则需要修改配置文件,将rabbitmq的配置

信息移动到application.yml中的spring节点下修改后的配置如下:

server:port: 8801spring:application:name: cloud-stream-providerrabbitmq:host: 华为云ip// localhostport: 5672username: guestpassword: guestcloud:stream:binders:defaultRabbit:type: rabbitbindings:output:destination: studyExchangecontent-type: application/jsonbinder: defaultRabbiteureka:client: # 客户端进行Eureka注册的配置service-url:defaultZone: http://localhost:7001/eurekainstance:lease-renewal-interval-in-seconds: 2 # 设置心跳的时间间隔(默认是30秒)lease-expiration-duration-in-seconds: 5 # 如果现在超过了5秒的间隔(默认是90秒)instance-id: send-8801.com  # 在信息列表时显示主机名称prefer-ip-address: true     # 访问的路径变为IP地址

在这里非常感谢这位老哥:
在这里插入图片描述
重启启动成功!!!!
如果对你有帮助的话,点个赞呗!!!

  相关解决方案