Spring Cloud為開發人員提供了快速建構分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線)。
分布式系統的協調導緻了樣闆模式, 使用Spring Cloud開發人員可以快速地支援實作這些模式的服務和應用程式。
他們将在任何分布式環境中運作良好,包括開發人員自己的筆記本電腦,裸機資料中心,以及Cloud Foundry等托管平台。
特性
Spring Cloud專注于提供良好的開箱即用經驗的典型用例和可擴充性機制覆寫。
- 分布式/版本化配置
- 服務注冊和發現
- 路由
- service - to - service調用
- 負載均衡
- 斷路器
- 分布式消息傳遞
Spring Cloud上下文:應用程式上下文服務
Spring Boot對于如何使用Spring建構應用程式有一個看法:例如它具有正常配置檔案的正常位置,以及用于常見管理和監視任務的端點。Spring Cloud建立在此之上,并添加了一些可能系統中所有元件将使用或偶爾需要的功能。
引導應用程式上下文
一個Spring Cloud應用程式通過建立一個“引導”上下文來進行操作,這個上下文是主應用程式的父上下文。開箱即用,負責從外部源加載配置屬性,還解密本地外部配置檔案中的屬性。這兩個上下文共享一個
Environment
,這是任何Spring應用程式的外部屬性的來源。Bootstrap屬性的優先級高,是以預設情況下不能被本地配置覆寫。
引導上下文使用與主應用程式上下文不同的外部配置約定,是以使用
bootstrap.yml
application.yml
(或
.properties
)代替引導和主上下文的外部配置。例:
bootstrap.yml
spring:
application:
name: foo
cloud:
config:
uri: ${SPRING_CONFIG_URI:http://localhost:8888}
如果您的應用程式需要伺服器上的特定于應用程式的配置,那麼設定
spring.application.name
(在
bootstrap.yml
或
application.yml
)中是個好主意。
您可以通過設定
spring.cloud.bootstrap.enabled=false
(例如在系統屬性中)來完全禁用引導過程。
請注意,
SpringApplicationBuilder
允許您在整個層次結構中共享
Environment
,但這不是預設值。是以,兄弟情境尤其不需要具有相同的資料或财産來源,盡管它們與父母共享共同點。