[英]If git repository is down then how to switch native property files automatically in spring cloud config server?
[英]Spring Cloud Config, how to fetch binary files from git repository
Spring cloud-config-server
有一個內置的機制來與 git 存儲庫通信並讀取存儲在那里的文件。 然后cloud-config-server
也有內置的機制來向客戶端(通常是 spring boot 應用程序)公開端點,客戶端可以讀取這些文件並將它們用作配置。
從下面可以看出,這在 spring 文檔中有詳細記錄。
根據文件
Spring Cloud 配置服務器
Spring Cloud Config Server 為外部配置(名稱-值對或等效的 YAML 內容)提供基於 HTTP 資源的 API。
還記錄了服務格式
提供替代格式
來自環境端點的默認 JSON 格式非常適合 Spring 應用程序使用,因為它直接映射到環境抽象。 如果願意,您可以通過向資源路徑添加后綴(“.yml”、“.yaml”或“.properties”)來使用與 YAML 或 Java 屬性相同的數據。 這對於不關心 JSON 端點的結構或它們提供的額外元數據的應用程序的使用很有用(例如,不使用 Spring 的應用程序可能會受益於這種方法的簡單性)。
它還可以支持txt格式
提供純文本
您的應用程序可能需要針對其環境定制的通用純文本配置文件,而不是使用環境抽象(或 YAML 或屬性格式的替代表示之一)。
但是考慮到 spring cloud config 服務器具有與 git 存儲庫通信的內置機制,並且還向客戶端公開端點以使用交付的文件,其他類型的文件能夠從這些端點提供服務是有意義的出色地。
例如,它可以是.pdf
、 .xslx
甚至.zip
例如,假設配置的 git 存儲庫在featureA
分支中包含文件myFile.zip
。 然后在/{application}/{profile}[/{label}]
類型的暴露路徑下調用,例如serverUrl:serverPort/myApp/default/featureA/myFile.zip
能夠傳送文件,但始終傳送為原始.txt
文件,然后破壞 git 中存在的原始文件的內容。
我已經找到了解決方案,但在上面投入了很多時間,奇怪的是它沒有記錄在 spring 文檔中。 因此,存在於此可能是一件好事,可以為其他有相同問題的人騰出一些時間。
正如 本期討論的那樣, spring-cloud-config-server
在普通spring-boot
應用程序的幫助下在后台運行。 考慮到spring-boot
內置了內容協商機制,它也能夠消費和生產不同的內容。
至於spring-cloud-config-server
,如果使用標頭Accept: application/octet-stream
進行調用,則可以從 git 和其他文件(例如 zip、pdf、word、xlsx...) Accept: application/octet-stream
。 通過這種方式,對serverUrl:serverPort/myApp/default/featureA/myFile.zip
的調用能夠傳送原始文件myFile.zip
的副本,而不會造成任何損壞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.