推送通知和 Spring Cloud Bus

许多源代码存储库提供程序(例如 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket)通过 Webhook 通知您存储库中的更改。 您可以通过提供商的用户界面将 Webhook 配置为 URL 和您感兴趣的一组事件。 例如,Github 使用 POST 到 Webhook,其 JSON 正文包含提交列表和标头 (X-Github-Event) 设置为push. 如果您添加依赖项spring-cloud-config-monitor库并在 Config Server 中激活 Spring Cloud Bus,然后/monitor端点已启用。spring-doc.cadn.net.cn

激活 Webhook 后,配置服务器会发送RefreshRemoteApplicationEvent针对它认为可能已经改变的应用程序。 可以制定更改检测策略。 但是,默认情况下,它会查找与应用程序名称匹配的文件中的更改(例如,foo.properties针对foo应用程序,而application.properties面向所有应用程序)。 当您想要覆盖该行为时,要使用的策略是PropertyPathNotificationExtractor,它接受请求标头和正文作为参数,并返回已更改的文件路径列表。spring-doc.cadn.net.cn

默认配置适用于 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket。 除了来自 Github、Gitlab、Gitee 或 Bitbucket 的 JSON 通知外,您还可以通过 POST 触发更改通知/monitor具有path={application}. 这样做会广播到与{application}pattern(可以包含通配符)。spring-doc.cadn.net.cn

RefreshRemoteApplicationEvent仅当spring-cloud-bus在配置服务器和客户端应用程序中激活。
默认配置还会检测本地 git 存储库中的文件系统更改。在这种情况下,不使用 Webhook。但是,一旦您编辑配置文件,就会广播刷新。