SpringCloud 推送通知和Spring Cloud Bus

2023-08-02 10:29 更新

许多源代码存储库提供程序(例如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。但是,一旦您编辑配置文件,就会广播刷新。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号