Spring Cloud Config. Вот есть у вас преположим spring сервис. Когда вы его запускаете, он запускается по умолчанию на порту 8080, но вы можете это катомизировать с помошью секции server.port в конфиге. С одной стороны хорошо но с другой стороны каждый раз менять там неудобно особенно если сервер этот нужно запускать в разных местах и конфиг для этих мест должен быть разным. Очевидное решение: каждое из этих мест должно хранить настройки само в себе и ваш сервис при старте должен их подхватывать. Для этого например можно поднять еще один сервис в каждом месте который и будет раздавать этот конфиг. Таким образом мы отделяем изменение конфига от изменения основного сервиса/приложения со всеми вытекающими плюсами. Ну и минус в том что теперь у нас еще по одному сервису/приложению дополнительному которое будет просто раздавать конфиг. Для этого в нашем сервисе-клиенте конфиг сервера в конфиге application.yml прописываем что он ожидает наличия конфиг- сервиса:
spring:
application:
name: employee-service
config:
import: "optional:configserver:http://localhost:8088"
Здесь optional означает что если сервис конфига он не подхватит то это не повод прекращать работу. Далее таким вот нехитрым способом создаем конфиг-сервис:
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ConfigApplication.class).run(args);
}
}
Сами конфиги собственно у нас хранятся в папке resources/config нашего конфиг сервиса. Поскольку у нас приложение называется employee-service у нас конфиг должен называться employee-service.yml. Там мы добавляем точно так же
server:
port: 8290
например. Теперь сперва стартанем конфиг-сервис, потом наш employee-service и о чудо, порт теперь у нас 8290 на котором сервис стартует.
Комментариев нет:
Отправить комментарий