Используя свойства конфигурации Spring Cloud, можно определить свойства для разных сервисов и разных сред, например, используя собственный профиль, мы можем иметь следующее дерево на сервере:
resources
config
service-a
service-a-local.properties
service-a-test.properties
service-b
service-b-local.properties
service-b-test.properties
и иметь клиентские сервисы, загруженные с конфигурацией из сервер, используя одну из доступных опций, например @Value
annotations et c. Это, однако, будет видеть только срез свойств с сервера конфигурации для вызывающей службы (или любого другого используемого spring.application.name
).
Как service-a
может динамически получать доступ к свойствам service-b
(или любой другой службы)? Локатор источника свойств по умолчанию использует "/{name}/{profile}"
путь для запросов на выборку. Я полагаю, что можно реструктурировать всю конфигурацию и поместить свойства всех служб в один файл для каждой среды, используя некоторое соответствующее соглашение об именах для свойств (например, используя имя службы в качестве префикса), а затем явно префиксировать ссылки на свойства вызывающего сайта с помощью этот префикс, но есть ли другой / более элегантный вариант перед использованием альтернативы discovery / me sh?