我今天算是被这个搞的心态崩掉了…
spring.cloud.stream.binders.defaultRabbit.environment.spring.rabbitmq.xx
来配置rabbitmq的环境
如果你是用的其他服务器上的rabbitmq,比如我使用的我自己的阿里云服务器然后创建docker容器来运行rabbitmq。
启动时会试图连接两次rabbitmq程序
第一次试图连接访问的就是application.yml中配置的地址,此时已经订阅成功了
但是程序还会在之后进行第二次连接,此时访问的地址就是localhost:5672,在我的环境中,我本地没有rabbitmq环境,所以直接报IOException。
所以,如果是使用的自己的服务器来配置,则需要修改配置文件,将rabbitmq的配置信息移动到application.yml中的spring节点下
修改后的配置如下:
spring:
application:
name: microservice-stream-provider-service
rabbitmq:
host: aliyun
port: 5672
username: guest
password: guest
cloud:
stream:
binders:
defaultRabbit:
type: rabbit
bindings:
output:
destination: cruiiExchange
content-type: application/json
binder: defaultRabbit