在Spring Boot中,如何在configure中将完全相同的随机端口分配给另一个属性

时间:2019-01-28 02:54:11

标签: spring-boot netflix-eureka

我正在使用grpc-spring-boot-starter作为grpc服务器运行spring boot,并且还配置为eureka客户端。

由于我稍后尝试启动更多实例,因此我想为我的grpc服务分配一个随机端口,所以我做了grpc.port=0

问题是,我还希望eureka.instance.nonSecurePortgrpc.port完全相同。这是我的配置。

grpc:
  port: 0

eureka:
  client:
    service-url:
      default-zone: http://localhost:8761/eureka
  application:
    name: grpc-service
  instance:
    securePortEnabled: false
    nonSecurePort: ${grpc.port}
    instance_id: ${spring.application.name}:${spring.application.instance_id:${random.value}}

问题是,我总是将eureka.instance.nonSecurePort设为0,这不是我想要的。我知道在运行时分配了随机端口。但是,在春季启动分配了随机端口后,是否有办法使grpc.porteureka.instance.nonSecurePort始终保持相同?

1 个答案:

答案 0 :(得分:3)

您可以通过以下方式将随机端口置于一个间隔之后:

grpc:
  port: ${random.int[9000,9900]}

eureka:
  client:
    service-url:
      default-zone: http://localhost:8761/eureka
  application:
    name: grpc-service
  instance:
    securePortEnabled: false
    nonSecurePort: ${grpc.port}