天天看點

Spring Cloud

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

,但這不是預設值。是以,兄弟情境尤其不需要具有相同的資料或财産來源,盡管它們與父母共享共同點。

繼續閱讀