概念
微服務是一種架構風格,它是一種將一個單一應用程式開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常採用http)。這些服務圍繞業務能力構建並且可通過全自動部署機制獨立部署,這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發,使用不同的數據存儲技術。
特徵
每個微服務可獨立運行在自己的進程中。一系列獨立運行的微服務共同構建起整個系統。每個服務為獨立的業務開發,一個微服務只關注某個特定的功能。微服務之間通過一些輕量的通信機制進行通信,例如使用http協議,通過restful api進行調用。可以使用不同的語言與數據存儲技術全自動的部署機制。SpringCloud 簡介
當我們的系統是分布式架構的時候,由於一個大的業務被拆分成各個不同的子業務,此時就會出現各種各樣的問題(之前文章有過介紹),而SpringCloud提供了一整套的解決方案!
Spring Cloud 是一套完整的分布式微服務解決方案,基於 Spring Boot 框架,準確的說,Spring Cloud它不是一個框架,而是一個大的容器。
Spring Cloud是一系列框架的有序集合,共有20多項技術。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控、服務降級等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud並沒有重複製造輪子,它只是將各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。
換句話說:Spring Cloud 提供了構建分布式系統所需的「全家桶」
SpringCloud的基礎功能
服務治理: Spring Cloud Eureka客戶端負載均衡: Spring Cloud Ribbon服務容錯保護: Spring Cloud Hystrix聲明式服務調用: Spring Cloud FeignAPI網關服務:Spring Cloud Zuul分布式配置中心: Spring Cloud Config消息總線: Spring Cloud Bus消息驅動的微服務: Spring Cloud Stream分布式服務跟蹤: Spring Cloud SleuthSpringCloud版本命名
SpringCloud採用了英國倫敦地鐵站的名稱來命名,並由地鐵站名稱字母A-Z依次類推的形式來發布迭代版本。
SpringCloud是一個由許多子項目組成的綜合項目,各子項目有不同的發布節奏。為了管理SpringCloud與各子項目的版本依賴關係,發布了一個清單,其中包括了某個SpringCloud版本對應的子項目版本。為了避免SpringCloud版本號與子項目版本號混淆,SpringCloud版本採用了名稱而非版本號的命名,這些版本的名字採用了倫敦地鐵站的名字,根據字母表的順序類對應版本時間順序。例如Angel是第一個版本,Brixton是第二個版本。當SpringCloud的發布內容累積到臨界點或者一個重大的Bug被解決後,會發布一個「service releases」版本,簡稱SRX版本,比如Greenwich.SR2就是SpringCloud發布的Greenwich版本的第2個SRX版本。
之後,會逐個的介紹SpringCloud各個組件,小夥伴們,敬請期待吧。