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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值