powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring cloud, environment variables to clients foo-service.yml
8 сообщений из 8, страница 1 из 1
Spring cloud, environment variables to clients foo-service.yml
    #39898966
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять, верное ли такое поведение config сервиса.
В конфиг сервисе в resources/
application.yml
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
server:
  port: ${SERVER_PORT:8888}

spring:
  application:
    name: config-server
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/, classpath:config/

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${REGISTRY_SERVICE_HOST:localhost}:${REGISTRY_SERVICE_PORT:8070}/eureka/



В resources/config лежат файл конфигураций для клиентов, пример одного из них:
discovery-service.yml
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
server:
  port: ${DISCOVERY_SERVICE_PORT:8070}

eureka:
  instance:
    instanceId : service-${random.uuid}
    preferIpAddress: false
    leaseRenewalIntervalInSeconds: 30
    health-check-url-path: /actuator/health
    metadata-map:
      startup: ${random.int}    #needed to trigger info and endpoint update after restart
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${REGISTRY_SERVICE_HOST:localhost}:${REGISTRY_SERVICE_PORT:8070}/eureka/




Главное здесь это строчка
defaultZone: http://${REGISTRY_SERVICE_HOST:localhost}:${REGISTRY_SERVICE_PORT:8070}/eureka/

При запуске конфиг-сервиса я передаю переменную
REGISTRY_SERVICE_PORT = 8081

Но когда открываю этот файл конфигурации по пути http://localhost:8888/discovery-service.yml
то вижу что порт не поменялся:
http://localhost:8888/discovery-service.yml
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
eureka:
  client:
    fetch-registry: false
    register-with-eureka: false
    service-url:
      defaultZone: http://localhost:8070/eureka/
  instance:
    health-check-url-path: /actuator/health
    instanceId: service-${random.uuid}
    leaseRenewalIntervalInSeconds: 30
    metadata-map:
      startup: ${random.int}
    preferIpAddress: false
server:
  port: 8070
spring:
  application:
    name: discovery-service
  profiles:
    active: native 



Что я не так делаю?
При старте проекта discovery-service передавая ему REGISTRY_SERVICE_PORT я вижу, что он стартует на том порту, который я в переменные и положил.
А вот его бутстреп файл:
bootstrap.yml
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
spring:
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://${CONFIG_SERVICE_HOST:localhost}:${CONFIG_SERVICE_PORT:8888}
    loadbalancer:
      ribbon:
        enabled: false


...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39898969
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть у discovery-service в bootstrap.yml нет это переменной REGISTRY_SERVICE_PORT, там только путь к конфиг-сервису.
И при старте, всё же заменяется дефолтное значение, которое в файле config-service
resourse/config/discovery-service.yml
прописано.
Если при запуске проекта discovery-service ему в переменные положить REGISTRY_SERVICE_PORT = 8081

То есть по факту хочется запускать config-service передавая ему REGISTRY_SERVICE_PORT = 8081
И чтобы в файле discovery-service.yml она заменялась.

Но чот не то я делаю, доки вроде прочитал и не смог нарыть вообще про замену переменных в таких файлах..(
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39898972
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а да, git для конфигов я не использую, думаю, что даже если буду использовать, то проблему это не решит.
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39899311
apb12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,врядли кто тебе тут поможет,спринг тут не уважают ,а обачный сервис и подавно)
так шо давай вопрос про сервлет и жсп)
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39899475
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, я почитал доки, проконсультировался с коллегой, который в теме, всё так и есть.
Конфиг-сервис содержит параметризованные конфиги других сервисов и свои переменные окружения в них не передает, передает в свой yml конфиг-файл и всё.
При этом читая (через браузер) конфиги сервисов-клиентов в них подставляются дефолтные значения и конфиг-сервис видит именно их.
А вот сервисы-клиенты получают параметризованные конфиги от конфиг-сервиса и могут изменить параметры на те, что у них в переменных окружения при старте прописаны.
Но мне, другие коллеги говорит, в чем тогда нам профит от конфиг-сервиса :)
И я тоже думаю, в чём тогда профит, хочется сгенерить на основе переменных окружения конфиг-сервиса конфиг-файлы сервисов клиентов, но увы...
Может профит в git'e? В том, что мы можем управлять конфигами отдельно от сервисов-клиентов (дак то же самое получается и когда просто файлы в ресурсах конфиг-сервиса лежат), версии поднимать удобнее.. хм..

Еще нужно бы добавить @RefreshScope, но я пока не разбирал эту тему, там еще есть так называемый bus что-то там(не хочу сейчас в доки лезть уточнять название) для апдейта сразу всех или нескольких конфигов в сервисах-клиентов, причем те подтянут изменения автоматом. Вроде так.
В общем тема интересная, надо разбираться.
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39899476
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12
Nixic,врядли кто тебе тут поможет,спринг тут не уважают ,а обачный сервис и подавно)
так шо давай вопрос про сервлет и жсп)

к сожалению, все ответы про сервлеты и жсп уже есть на stackoverflow )))
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39899482
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12
Nixic,врядли кто тебе тут поможет,спринг тут не уважают ,а обачный сервис и подавно)
так шо давай вопрос про сервлет и жсп)
немного не так. Java не любит бла бла не по теме. Народ более серьезный. Как в плюсах).
...
Рейтинг: 0 / 0
Spring cloud, environment variables to clients foo-service.yml
    #39899846
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подключил git-репозиторий в конфиг-сервисе:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: ${GIT_URI:http://xxx.ru:7999/scm/config-repo.git}
          username: ${GIT_USER_NAME:}
          password: ${GIT_PASSWORD:}
          default-label: ${GIT_BRANCH:master}
  profiles:
    active: default



Теперь конфиги можно добавлять в git и обновлять их нужными для сервисов-клиентов параметрами.
Клиент-сервисы теперь запускаются только с 2-мя параметрами: хост и порт конфиг-сервиса.
Удобно.
Только вот у заказчика нужно теперь либо поднимать git репозиторий, либо что-то еще придумывать с разворачиванием на их стенде.
Предполагаю, что нужно заюзать разные профили для сборки под конкретного заказчика, когда файлы конфигураций так же как и раньше будут лежать в проекте конфиг-сервиса... но это не точно.

Буду держать вас в курсе)))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring cloud, environment variables to clients foo-service.yml
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]