记录下自己遇到的问题,以及解决过程…先上问题图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/7bb28a156e25419c94880760cf9e45f5.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ludF94eG4=,size_16,color_FFFFFF,t_70)
环境
由于自己的RabbitMQ是配置在阿里云,所以在yml配置文件中rabbitmq配置那里不能直接写localhost需要改成我们的线上地址,如图
但是在启动的过程中,却报出AmqpConnectException: java.net.ConnectException: Connection refused: connect这就有点纳闷了,看了网上一堆说法,有说guest只能本地登录,也有说需要在rabbitmq配置处再加个vhost: / 但最终都没有解决我的问题…
查看日志
于是就看了下控制台打印的日志信息,发现了一个比较神奇的地方…如图:
我明明配的是线上的地址,它竟然又变回了本地???找到了问题的根源,没办法只好重新配置rabbitMQ了。
解决
新添加rabbitmq的配置信息,如下图:
最终(附上完整的配置)
消息生产者
server:
port: 8801
spring:
application:
name: cloud-stream-provider
cloud:
stream:
binders: #在此处配置要绑定的rabbitmq的服务信息
defaultRabbit: #表示定义的名称,用于binding整合
type: rabbit #消息组件类型
environment: #设置rabbitmq的相关环境配置
spring:
rabbitmq:
host: 39.103.237.140
port: 5672
username: admin
password: admin
bindings: #服务的整合处理
output: #这个名字是一个通道的名称
destination: studyExchange #表示要使用的Exchange名称定义
content-type: application/json #设置消息类型,本次为json,本文要设置为“text/plain”
binder:
- ${spring.cloud.stream.binders.defaultRabbit} #设置要绑定的消息服务的具体设置
#配置以下信息,因为默认会尝试连接localhost:5672
rabbitmq:
host: 39.103.237.140
port: 5672
username: admin
password: admin
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
lease-renewal-interval-in-seconds: 2 #设置心跳的时间间隔(默认是30S)
lease-expiration-duration-in-seconds: 5 #如果超过5S间隔就注销节点 默认是90s
instance-id: send-8801.com #在信息列表时显示主机名称
prefer-ip-address: true #访问的路径变为IP地址
消息消费者
server:
port: 8802
spring:
application:
name: cloud-stream-consumer
cloud:
stream:
binders: #在此处配置要绑定的rabbitmq的服务信息
defaultRabbit: #表示定义的名称,用于binding整合
type: rabbit #消息组件类型
environment: #设置rabbitmq的相关环境配置
spring:
rabbitmq:
host: 39.103.237.140
port: 5672
username: admin
password: admin
bindings: #服务的整合处理
input: #这个名字是一个通道的名称
destination: studyExchange #表示要使用的Exchange名称定义
content-type: application/json #设置消息类型,本次为json,本文要设置为“text/plain”
binder:
- ${spring.cloud.stream.binders.defaultRabbit} #设置要绑定的消息服务的具体设置
#配置以下信息,因为默认会尝试连接localhost:5672
rabbitmq:
host: 39.103.237.140
port: 5672
username: admin
password: admin
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
instance:
lease-renewal-interval-in-seconds: 2 #设置心跳的时间间隔(默认是30S)
lease-expiration-duration-in-seconds: 5 #如果超过5S间隔就注销节点 默认是90s
instance-id: receive-8802.com #在信息列表时显示主机名称
prefer-ip-address: true #访问的路径变为IP地址
Tips
愿这篇文章可以帮助到你