В Spring Boot, Как назначить точно такой же случайный порт другому свойству в конфигурации - PullRequest
0 голосов
/ 28 января 2019

Я использую весеннюю загрузку с grpc-spring-boot-starter в качестве grpc-сервера, а также настроен как клиент eureka.

Поскольку я пытаюсь запустить несколько экземпляров позже, я хочу назначитьслучайный порт для моей службы grpc, поэтому я сделал grpc.port=0

Проблема в том, что я также хочу, чтобы eureka.instance.nonSecurePort был точно таким же портом, что и grpc.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.port и eureka.instance.nonSecurePort всегда были одинаковыми после того, как весенней загрузке назначен случайный порт?

1 Ответ

0 голосов
/ 28 января 2019

Вы можете установить произвольный порт после интервала следующим образом:

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}
...