2014-12-01 2 views
1

Я играл с Spring Cloud Configuration. Мне нравится простота решения и тот факт, что он использует git как хранилище конфигурации по умолчанию.Spring Cloud Конфигурация, рекомендованная архитектура в центре обработки данных

Есть два аспекта, которые мне нужно выяснить, прежде чем подталкивать его как решение для централизованного управления конфигурацией. Аспекты являются:

Высокая доступность

Как постепенно раскатать изменения конфигурации (для поддержки Канарейки релизы)

Если вы уже реализовали это в центре обработки данных или просто играть с этим пожалуйста, поделитесь своими идеями! Также я хотел бы услышать от создателей, как они видят рекомендуемое развертывание в средах с одним/несколькими средами обработки данных.

ответ

3

Сервер Config сам по себе не имеет гражданства, поэтому вы можете развернуть столько, сколько вам нужно, и найти их через eureka. Под самим сервером, реализация git, на которую вы указываете, должна быть очень доступной. Поэтому, если вы укажете на github (частный или открытый), тогда git будет доступен как github. Если сервер конфигурации не может достичь git, он будет продолжать обслуживать то, что он проверил, даже если он устарел.

Что касается постепенного изменения конфигурации, вы можете использовать другую ветку и настроить канарейку для использования этой ветки через spring.cloud.config.label, и они объединяют ветвь. Вы также можете использовать профили (например, application-<profilename>.properties) и настроить канарейку для использования указанного профиля.

Я думаю, что ветка имеет немного больше смысла, потому что вам не придется перенастраивать не-канарные узлы, чтобы каждый раз использовать новый профиль, просто настройте канарейку для использования ветви.

В любом случае, только приложения, которые видят конфигурационные изменения (при использовании Spring Configuration Configuration Client), находятся при запуске или когда вы устанавливаете POST на /refresh на каждом узле. Вы также можете использовать POST до /bus/refresh?destination=<servicename>, если вы используете Spring Cloud Bus для обновления всех экземпляров службы за один раз.

Смежные вопросы