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后,配置服務器將發(fā)送一個針對它認為可能已更改的應用程序的?RefreshRemoteApplicationEvent?。變化檢測可以被策略化。但是,默認情況下,它會查找與應用程序名稱匹配的文件中的更改(例如,?foo.properties?面向?foo?應用程序,而?application.properties?面向所有應用程序)。當您要覆蓋此行為時,使用的策略是?PropertyPathNotificationExtractor?,該策略接受請求標頭和正文作為參數(shù),并返回已更改文件路徑的列表。

默認配置可以與Github,Gitlab,Gitea,Gitee,Gogs或Bitbucket一起使用。除了來自Github,Gitlab,Gitee或Bitbucket的JSON通知之外,您還可以通過使用?path={application}?模式的形式編碼的正文參數(shù)POST到?/monitor?來觸發(fā)更改通知。這樣做會向匹配?{application}?模式(可以包含通配符)的應用程序廣播。

當在配置服務器和客戶端應用程序中都激活了spring-cloud-bus時,才發(fā)送RefreshRemoteApplicationEvent。

默認配置還檢測本地git存儲庫中的文件系統(tǒng)更改。在這種情況下,不使用Webhook。但是,一旦您編輯配置文件,就會廣播刷新。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號