推送通知和 Spring Cloud Bus

許多原始碼倉庫提供商(如 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket)透過 webhook 通知您倉庫中的更改。您可以透過提供商的使用者介面配置 webhook,指定一個 URL 和一組您感興趣的事件。例如,Github 使用 POST 請求傳送到 webhook,其 JSON 主體包含提交列表,並且頭部(X-Github-Event)設定為 push。如果您添加了對 spring-cloud-config-monitor 庫的依賴,並在您的配置伺服器中激活了 Spring Cloud Bus,那麼 /monitor 端點將被啟用。

當 webhook 被啟用時,配置伺服器會發送一個 RefreshRemoteApplicationEvent,目標是它認為可能已更改的應用程式。更改檢測可以策略化。然而,預設情況下,它會查詢與應用程式名稱匹配的檔案中的更改(例如,foo.properties 針對 foo 應用程式,而 application.properties 針對所有應用程式)。當您想要覆蓋此行為時,使用的策略是 PropertyPathNotificationExtractor,它接受請求頭和請求體作為引數,並返回已更改的檔案路徑列表。

預設配置開箱即用,支援 Github、Gitlab、Gitea、Gitee、Gogs 或 Bitbucket。除了來自 Github、Gitlab、Gitee 或 Bitbucket 的 JSON 通知之外,您還可以透過向 /monitor 傳送 POST 請求並使用 path={application} 模式的表單編碼請求體引數來觸發更改通知。這樣做會廣播到與 {application} 模式匹配的應用程式(該模式可以包含萬用字元)。

只有當 spring-cloud-bus 在配置伺服器和客戶端應用程式中都啟用時,RefreshRemoteApplicationEvent 才會傳輸。
預設配置還會檢測本地 git 倉庫中的檔案系統更改。在這種情況下,不使用 webhook。但是,一旦您編輯了配置檔案,就會廣播重新整理。
© . This site is unofficial and not affiliated with VMware.