天天看點

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

點選上方“芋道源碼”,選擇“設為星标”

管她前浪,還是後浪?

能浪的浪,才是好浪!

每天 8:55 更新文章,每天掉億點點頭發...

源碼精品專欄

  • 原創 | Java 2020 超神之路,很肝~
  • 中文詳細注釋的開源項目
  • RPC 架構 Dubbo 源碼解析
  • 網絡應用架構 Netty 源碼解析
  • 消息中間件 RocketMQ 源碼解析
  • 資料庫中間件 Sharding-JDBC 和 MyCAT 源碼解析
  • 作業排程中間件 Elastic-Job 源碼解析
  • 分布式事務中間件 TCC-Transaction 源碼解析
  • Eureka 和 Hystrix 源碼解析
  • Java 并發源碼

來源:cnblogs.com/three-fighter/p/13485459.html

  • 1、什麼是微服務
    • 1.1、架構演進
    • 1.2、微服務架構
    • 1.3、微服務解決方案
  • 2、SpringCloud概覽
    • 2.1、什麼是SpringCloud
    • 2.1、SpringCloud主要元件
  • 3、總結

1、什麼是微服務

1.1、架構演進

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
  • 單體架構:未做任何拆分的Java Web程式
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
  • 分布式架構:按照業務垂直劃分,每個業務都是單體架構,通過API互相調用。
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
  • SOA架構:SOA是一種面向服務的架構。其應用程式的不同元件通過網絡上的通信協定向其它元件提供服務或消費服務,是以也是分布式架構的一種。
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

1.2、微服務架構

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

微服務目前并沒有比較官方的定義。微服務 Microservices 之父,馬丁.福勒,對微服務大概的概述如下:

就目前而言,對于微服務業界并沒有一個統一的、标準的定義(While there is no precise definition of this architectural style ) 。

但通常在其而言,微服務架構是一種架構模式或者說是一種架構風格,它提倡将單一應用程式劃分成一組小的服務,每個服務運作獨立的自己的程序中,服務之間互相協調、互相配合,為使用者提供最終價值。

服務之間采用輕量級的通信機制互相溝通(通常是基于 HTTP 的 RESTful API ) 。每個服務都圍繞着具體業務進行建構,并且能夠被獨立地部署到生産環境、類生産環境等。

另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合适的語言、工具對其進行建構,可以有一個非常輕量級的集中式管理來協調這些服務。可以使用不同的語言來編寫服務,也可以使用不同的資料存儲。

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

1.3、微服務解決方案

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

2、SpringCloud概覽

2.1、什麼是SpringCloud

Spring Cloud 作為 Java 言的微服務架構,它依賴于 Spring Boot ,有快速開發、持續傳遞和容易部署等特點。Spring Cloud 的元件非常多,涉及微服務的方方面面,井在開源社群 Spring、Netflix Pivotal 兩大公司的推動下越來越完善。

SpringCloud是一系列元件的有機集合。

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1、SpringCloud主要元件

2.1.1、Eureka

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.2、Ribbon

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.3、Feign

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.4、Hystrix

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.5、Zuul

Zuul 是由 Netflix 孵化的一個緻力于“網關 “解決方案的開源元件。

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.6、Gateway

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.7、Config

Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,為外部配置提供了用戶端和伺服器端的支援。

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.8、 Bus

使用 Spring Cloud Bus, 可以非常容易地搭建起消息總線。

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.9、OAuth2

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

2.1.10、Sleuth

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

3、總結

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

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

推薦 GitHub 倉庫:https://github.com/YunaiV/SpringBoot-Labs

歡迎加入我的知識星球,一起探讨架構,交流源碼。加入方式,長按下方二維碼噢:

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

已在知識星球更新源碼解析如下:

19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結
19 張圖概覽 Spring Cloud1、什麼是微服務2、SpringCloud概覽3、總結

最近更新《芋道 SpringBoot 2.X 入門》系列,已經 20 餘篇,覆寫了 MyBatis、Redis、MongoDB、ES、分庫分表、讀寫分離、SpringMVC、Webflux、權限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能測試等等内容。

提供近 3W 行代碼的 SpringBoot 示例,以及超 4W 行代碼的電商微服務項目。

擷取方式:點“在看”,關注公衆号并回複 666 領取,更多内容陸續奉上。

文章有幫助的話,在看,轉發吧。
謝謝支援喲 (*^__^*)