用 19 張思惟導圖描述Spring Cloud的概念和主要組件,建議收藏

本文用 19 張思惟導圖描述微服務相關的概念和架構,建議收藏。包括什麼是微服務、架構演進、微服務架構、微服務解決方案、SpringCloud概覽、Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Config、Bus、OAuth二、Sleuth、什麼是SpringCloud、SpringCloud主要組件。面試

Java全棧最新面試題以及熱門技術棧學習筆記分享後端

一、什麼是微服務

1.一、架構演進服務器

架構的發展歷程是從單體式架構,到分佈式架構,到SOA架構,再到微服務架構。微信

圖1:架構演進網絡

  • 單體架構:未作任何拆分的Java Web程序

圖2:單體架構示意圖架構

  • 分佈式架構:按照業務垂直劃分,每一個業務都是單體架構,經過API互相調用。

圖3:分佈式架構示意圖負載均衡

  • SOA架構:SOA是一種面向服務的架構。其應用程序的不一樣組件經過網絡上的通訊協議向其它組件提供服務或消費服務,因此也是分佈式架構的一種。

圖4:SOA架構示意圖框架

1.二、微服務架構

微服務架構在某種程度上是SOA架構的進一步的發展。分佈式

微服務目前並無比較官方的定義。微服務 Microservices 之父,馬丁.福勒,對微服務大概的概述以下:ide

就目前而言,對於微服務業界並無一個統一的、標準的定義(While there is no precise definition of this architectural style ) 。

但一般在其而言,微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃分紅一組小的服務,每一個服務運行獨立的本身的進程中,服務之間互相協調、互相配合,爲用戶提供最終價值。

服務之間採用輕量級的通訊機制互相溝通(一般是基於 HTTP 的 RESTful API ) 。每一個服務都圍繞着具體業務進行構建,而且可以被獨立地部署到生產環境、類生產環境等。

另外,應儘可能避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建,能夠有一個很是輕量級的集中式管理來協調這些服務。可使用不一樣的語言來編寫服務,也可使用不一樣的數據存儲。

能夠關注微信公衆號「Java後端」回覆「666」下載一本包含微服務技術的技術棧手冊。

圖5:微服務定義思惟導圖

圖6:微服務架構示意圖

1.三、微服務解決方案

目前最流行的兩種微服務解決方案是Spring Cloud和Dubbo。

二、SpringCloud概覽

2.0、什麼是SpringCloud

Spring Cloud 做爲 Java 言的微服務框架,它依賴於 Spring Boot ,有快速開發、持續交付和容易部署等特色。Spring Cloud 的組件很是多,涉及微服務的方方面面,井在開源社區 Spring、Netflix Pivotal 兩大公司的推進下愈來愈完善。

Spring Cloud是一系列組件的有機集合。

圖7:SpringCloud技術體系

圖8:SpringCloud技術體系思惟導圖

2.一、SpringCloud主要組件

2.1.一、Eureka

Netflix Eureka 是由 Netflix 開源的一款基於 REST 的服務發現組件,包括 Eureka Server 及 Eureka Client。

2.1.二、Ribbon

Ribbon Netflix 公司開源的一個負載均衡的組件。

2.1.三、Feign

Feign是是一個聲明式的Web Service客戶端。

2.1.四、Hystrix

Hystrix是Netstflix 公司開源的一個項目,它提供了熔斷器功能,可以阻止分佈式系統中出現聯動故障。

圖片

2.1.五、Zuul

Zuul 是由 Netflix 孵化的一個致力於「網關 「解決方案的開源組件。

圖片

2.1.六、Gateway

Spring Cloud Gateway 是 Spring 官方基於 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等技術開發的網關, Spring Cloud Gateway 旨在爲微服務架構提供簡單、 有效且統一的 API 路由管理方式。

圖片

2.1.七、Config

Spring Cloud 中提供了分佈式配置中 Spring Cloud Config ,爲外部配置提供了客戶端和服務器端的支持。

圖片

2.1.八、 Bus

使用 Spring Cloud Bus, 能夠很是容易地搭建起消息總線。

圖片

2.1.九、OAuth2

Sprin Cloud 構建的微服務系統中可使用 Spring Cloud OAuth2 來保護微服務系統。

圖片

2.1.十、Sleuth

Spring Cloud Sleuth是Spring Cloud 個組件,它的主要功能是在分佈式系統中提供服務鏈路追蹤的解決方案。

本文中對架構的演進及Spring Cloud 構建微服務的基本組件進行了概覽。

相關文章
相關標籤/搜索