推送通知和Spring Cloud Bus

许多源代码存储库提供程序(例如Github、Gitlab、Gitea、Gitee、Gogs或Bitbucket)通过webhook通知你存储库中的更改,你可以通过提供程序的用户界面将webhook配置为URL以及你感兴趣的一组事件。例如,Github使用POST到webhook,其中包含一个JSON体,其中包含一个提交列表和一个header(X-Github-Event)设置为push,如果添加了对spring-cloud-config-monitor库的依赖并在Config Server中激活Spring Cloud Bus,则会启用/monitor端点。

激活webhook后,Config Server会针对它认为可能已更改的应用程序发送一个RefreshRemoteApplicationEvent,变更检测可以制定策略。但是,默认情况下,它会查找与应用程序名称匹配的文件中的更改(例如,foo.properties的目标是foo应用程序,而application.properties则针对所有应用程序)。要覆盖该行为时使用的策略是PropertyPathNotificationExtractor,它接受请求headers和body作为参数,并返回已更改的文件路径列表。

默认配置的开箱即用的使用Github、Gitlab、Gitea、Gitee、Gogs或Bitbucket,除了来自Github,Gitlab,Gitee或Bitbucket的JSON通知,你可以通过使用path={name}模式中的form-encoded的body参数POST到/monitor来触发更改通知,这样做会广播到匹配{name}模式(可以包含通配符)的应用程序。

仅当在Config Server和客户端应用程序中激活spring-cloud-bus时,才会传输RefreshRemoteApplicationEvent
默认配置还检测本地git存储库中的文件系统更改,在这种情况下,不使用webhook,但是,只要编辑配置文件,就会广播刷新。

上一篇:嵌入Config Server
下一篇:Spring Cloud Config Client

博弈
2.5k 声望1.5k 粉丝

态度决定一切