天天看點

Spring Cloud 學習(一):微服務及Spring Cloud介紹一、微服務介紹二、Spring Cloud 介紹三、Spring Cloud 體系

文章目錄

  • 一、微服務介紹
    • 1、什麼是微服務?
    • 2、微服務優勢
    • 3、使用 Spring Cloud 的優勢
  • 二、Spring Cloud 介紹
    • 1、什麼是 Spring Cloud
    • 2、核心特性
    • 3、版本名稱
  • 三、Spring Cloud 體系
    • 1、Spring Cloud 包含的元件
    • 2、Spring Cloud 和 Spring Boot 版本關系

一、微服務介紹

微服務架構越來越流行,這個沒有異議。

2009 年,Netflix 重新定義了它的應用程式員的開發模型,這個算是微服務的首次探索。

20014 年,《Microservices》,這篇文章以一個更加通俗易懂的方式,為大家定義了微服務。

為什麼要用微服務?

網際網路應用産品的兩大特點:

  1. 需求變化快
  2. 使用者群體龐大

    在這樣的情況下,我們需要建構一個能夠靈活擴充,同時能夠快速應對外部環境變化的一個應用,使用

    傳統的開發方式,顯然無法滿足需求。這個時候,微服務就登場了。

1、什麼是微服務?

簡單來說,微服務就是一種将一個單一應用程式拆分為一組小型服務的方法,拆分完成後,每一個服務都運作在獨立的程序中,服務于服務之間采用輕量級的通信機制來進行溝通(Spring Cloud 中采用基于HTTP 的 RESTful API)。

每一個服務,都是圍繞具體的業務進行建構,例如一個電商系統,訂單服務、支付服務、物流服務、會員服務等等,這些拆分後的應用都是獨立的應用,都可以獨立的部署到生産環境中。就是在采用微服務之後,我們的項目不再拘泥于一種語言,可以 Java、Go、Python、PHP 等等,混合使用,這在傳統的應用開發中,是無法想象的。而使用了微服務之後,我們可以根據業務上下文來選擇合适的語言和建構工具進行建構。

微服務可以了解為是 SOA 的一個傳承,一個本質的差別是微服務是一個真正分布式、去中心化的,微服務的拆分比 SOA 更加徹底。

2、微服務優勢

  1. 複雜度可控
  2. 獨立部署
  3. 技術選型靈活
  4. 較好的容錯性
  5. 較強的可擴充性

3、使用 Spring Cloud 的優勢

Spring Cloud 可以了解為微服務這種思想在 Java 領域的一個具體落地。Spring Cloud 在發展之初,就借鑒了微服務的思想,同時結合 Spring Boot,Spring Cloud 提供了元件的一鍵式啟動和部署的能力,極大的簡化了微服務架構的落地。

Spring Cloud 這種架構,從設計之初,就充分考慮了分布式架構演化所需要的功能,例如服務注冊、配置中心、消息總線以及負載均衡等。這些功能都是以可插拔的形式提供出來的,這樣,在分布式系統不斷演化的過程中,我們的 Spring Cloud 也可以非常友善的進化。

二、Spring Cloud 介紹

官網:https://spring.io/projects/spring-cloud

1、什麼是 Spring Cloud

Spring Cloud 是一系列架構的集合,Spring Cloud 内部包含了許多架構,這些架構互相協作,共同來建構分布式系統。利用這些元件,可以非常友善的建構一個分布式系統。

2、核心特性

  1. 服務注冊與發現
  2. 負載均衡
  3. 服務之間調用
  4. 容錯、服務降級、斷路器
  5. 消息總線
  6. 分布式配置中心
  7. 鍊路器

3、版本名稱

不同于其他的架構,Spring Cloud 版本名稱是通過 A(Angel)、B(Brixton)、C(Camden)、D(Dalston)、E(Edgware)、F(Finchley)。。 這樣來明明的,這些名字使用了倫敦地鐵站的名

字,目前最新版是 H (Hoxton)版。

Spring Cloud 中,除了大的版本之外,還有一些小版本,小版本命名方式如下:

  • M ,M 版是 milestone 的縮寫,是以我們會看到一些版本叫 M1、M2
  • RC,RC 是 Release Candidate,表示該項目處于候選狀态,這是正式發版之前的一個狀态,是以我們會看到 RC1、RC2
  • SR,SR 是 Service Release ,表示項目正式釋出的穩定版,其實相當于 GA(GenerallyAvailable) 版。是以,我們會看到 SR1、SR2
  • SNAPSHOT,這個表示快照版

三、Spring Cloud 體系

1、Spring Cloud 包含的元件

  • Spring Cloud Netflix,這個元件,在 Spring Cloud 成立之初,立下了汗馬功勞。但是, 2018 年的斷更,也是 Netflix 掉鍊子了。
  • Spring Cloud Config,分布式配置中心,利用 Git/Svn 來集中管理項目的配置檔案
  • Spring Cloud Bus,消息總線,可以建構消息驅動的微服務,也可以用來做一些狀态管理等
  • Spring Cloud Consul,服務注冊發現
  • Spring Cloud Stream,基于 Redis、RabbitMQ、Kafka 實作的消息微服務
  • Spring Cloud OpenFeign,提供 OpenFeign 內建到 Spring Boot 應用中的方式,主要解決微服務之間的調用問題
  • Spring Cloud Gateway,Spring Cloud 官方推出的網關服務
  • Spring Cloud Cloudfoundry,利用 Cloudfoundry 內建我們的應用程式
  • Spring Cloud Security,在 Zuul 代理中,為 OAuth2 用戶端認證提供支援
  • Spring Cloud AWS ,快速內建亞馬遜雲服務
  • Spring Cloud Contract,一個消費者驅動的、面向 Java 的契約架構
  • Spring Cloud Zookeeper,基于 Apache Zookeeper 的服務注冊和發現
  • Spring Cloud Data Flow,在一個結構化的平台上,組成資料微服務
  • Spring Cloud Kubernetes,Spring Cloud 提供的針對 Kubernetes 的支援
  • Spring Cloud Function
  • Spring Cloud Task,短生命周期的微服務

2、Spring Cloud 和 Spring Boot 版本關系

Spring Cloud 學習(一):微服務及Spring Cloud介紹一、微服務介紹二、Spring Cloud 介紹三、Spring Cloud 體系
點我前往《SpringCloud專欄》

繼續閱讀