在搭建springcloud微服务时,可以使用Turbine进行监控多个微服务,用dashboard展示数据。
不过在springboot1.5.x+springcloudEdgware版,使用消息中间间收集数据时会出现一个错误,导致Turbine整合rabbitmq项目无法运行。
错误信息:org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.cloud.netflix.turbine.stream.TurbineStreamConfiguration'; nested exception is java.net.BindException: Address already in use: bind
导致原因:Turbine整合rabbitmq时会启动一个Netty容器,并将server.port 设为-1 ,从而关闭Servlet容器,就会导致yml文件中server.port无法正常工作。
解决办法:修改yml文件
server:
port: 28031
spring:
application:
name: turbinservice
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipAddress}:28031
non-secure-port: 28031
man