Как конфиг сервера обновляет конфиги? - PullRequest
0 голосов
/ 30 октября 2019

При наличии весеннего облачного сервера конфигурации с бэкэндом GitHub.
При запуске он клонирует удаленный репозиторий и начинает обслуживать конфигурации.

В соответствии с этим
https://cloud.spring.io/spring-cloud-config/1.4.x/single/spring-cloud-config.html#_push_notifications_and_spring_cloud_bus
можно настроить веб-крючок GitHub, который будет отправлять уведомление на конечную точку POST /monitor, если сервер конфигурации имеет зависимость spring-cloud-config-monitor.

Далее документ описывает, что сервер конфигурации будет транслировать сообщение всем клиентам, еслиправильная настройка на месте, но я упускаю часть, как сам сервер конфигурации обновляется?
Производит ли он git pull -f при получении сообщения веб-крюка?

Можно ли настроить это поведение, реализовав любоенапример, компонент типа слушателя?
Это может быть полезно, например, для фильтрации на основе полезной нагрузки сообщения webhook.

1 Ответ

0 голосов
/ 31 октября 2019

Очевидно, что при каждом запросе конфигурации сервер проверяет и при необходимости синхронизирует локальные и удаленные репозитории git с git pull -f.

Это поведение определено в JGitEnvironmentRepository.java, и начиная с версии 2 можно настроить с помощьюrefreshRate свойство:
https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.0.5.RELEASE/single/spring-cloud-config.html#_git_refresh_rate

С другой стороны, он имеет возможность заранее обновлять конфиги при обновлении удаленного репо, но ни одна клиентская служба еще не запросила новые конфиги.
Для этого он предлагает POST /monitor конечную точку, которая может принимать уведомления GitHub webhook.

...