Spring Application 随机端口 + Eureka 实践

随机端口

随机端口是Spring Application经常使用的策略,Spring也提供了便捷的配置方法:

server.port = 0

或者

server.port = ${random.int[10000,65535]}
这两种方式在配合Eureka使用时会产生一些问题:

配置端口为0会造成:
1. 在注册到Eureka的时候会一个问题:所有实例都使用了同样的实例名(如:Lenovo-zhaiyc:hello-service:0),这导致只出现了一个实例。
2. 当使用management.context-path配置了前缀时,默认的statusPageUrl与healthCheckUrl无效

配置端口为${random.int[10000,65535]}会造成:eureka端口号不对应

解决方案

《springboot使用随机端口暴露的问题解决方法》提供了一种解决办法,但是涉及到Spring代码的改动,系统升级时比较麻烦,这里提供一个解决方案,配置端口号为0,同时配置instance-id和metadata的url.

application.yml

server:
  port: 0
management:
  context-path: /manage
eureka:
  instance:
    instance-id:${spring.application.name}:${random.int}
    statusPageUrlPath: ${management.context-path}/info
    healthCheckUrlPath: ${management.context-path}/health

猜你喜欢

转载自blog.csdn.net/sinat_34763749/article/details/81183142
今日推荐