SpringCloud 推送通知和Spring Cloud Bus
许多源代码存储库提供程序(例如Github,Gitlab,Gitea,Gitee,Gogs或Bitbucket)都通过Webhook通知您存储库中的更改。您可以通过提供者的用户界面将Webhook配置为URL和您感兴趣的一组事件。例如,Github使用POST到Webhook,其JSON主体包含提交列表和设置为push
的标头(X-Github-Event
)。如果在spring-cloud-config-monitor
库上添加依赖项并在Config Server中激活Spring Cloud Bus,则会启用/monitor
端点。
激活Webhook后,配置服务器将发送一个针对它认为可能已更改的应用程序的RefreshRemoteApplicationEvent
。变化检测可以被策略化。但是,默认情况下,它会查找与应用程序名称匹配的文件中的更改(例如,foo.properties
面向foo
应用程序,而application.properties
面向所有应用程序)。当您要覆盖此行为时,使用的策略是PropertyPathNotificationExtractor
,该策略接受请求标头和正文作为参数,并返回已更改文件路径的列表。
默认配置可以与Github,Gitlab,Gitea,Gitee,Gogs或Bitbucket一起使用。除了来自Github,Gitlab,Gitee或Bitbucket的JSON通知之外,您还可以通过使用path={application}
模式的形式编码的正文参数POST到/monitor
来触发更改通知。这样做会向匹配{application}
模式(可以包含通配符)的应用程序广播。
仅当在配置服务器和客户端应用程序中都激活了
spring-cloud-bus
时,才发送RefreshRemoteApplicationEvent
。
默认配置还检测本地git存储库中的文件系统更改。在这种情况下,不使用Webhook。但是,一旦您编辑配置文件,就会广播刷新。
更多建议: