關於SpringCloud微服務架構概念的一點理解


目前微服務是非常火的架構或者說概念,也是在構建大型互聯網項目時采用的架構方式。

 

1.單體架構
單體架構,是指將開發好的項目打成war包,然后發布到tomcat等容器中的應用。

假設你正准備開發一款與Uber和Hailo競爭的出租車調度軟件,經過初步會議和需求分析,你可能會手動或者使用基於Spring Boot、Play或者Maven的生成器開始這個新項目,它的六邊形架構是模塊化的,架構圖如下:

 

 

 

 應用核心是業務邏輯,由定義服務、域對象和事件的模塊完成。圍繞着核心的是與外界打交道的適配器。適配器包括數據庫訪問組件、生產和處理消息的消息組件,以及提供API或者UI訪問支持的web模塊等。

 盡管也是模塊化邏輯,但是最終它還是會打包並部署為單體式應用。具體的格式依賴於應用語言和框架。例如,許多Java應用會被打包為WAR格式,部署在Tomcat或者Jetty上,而另外一些Java應用會被打包成自包含的JAR格式,同樣,Rails和Node.js會被打包成層級目錄。

 這種應用開發風格很常見,因為IDE和其它工具都擅長開發一個簡單應用,這類應用也很易於調試,只需要簡單運行此應用,用Selenium鏈接UI就可以完成端到端測試。單體式應用也易於部署,只需要把打包應用拷貝到服務器端,通過在負載均衡器后端運行多個拷貝就可以輕松實現應用擴展。在早期這類應用運行的很好。

 

 

2. 單體架構存在的問題

 

 

3. 什么是微服務?

 


4. 微服務架構的特征

 

 



5. 微服務架構示例

 

6. SpringCloud簡介
1.SpringCloud子項目

Component

Camden.SR7

Dalston.SR3

Edgware.M1

Finchley.M2

Finchley.BUILD-SNAPSHOT

備注

spring-cloud-aws

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

用於簡化整合AmazonWebService的組件

spring-cloud-bus

1.2.2.RELEASE

1.3.1.RELEASE

1.3.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

事件、消息總線,用於傳播集群中的狀態變化或事件。

spring-cloud-cli

1.2.4.RELEASE

1.3.4.RELEASE

1.4.0.M1

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

用於在Groovy平台創建SpringCloud應用。

spring-cloud-commons

1.1.9.RELEASE

1.2.3.RELEASE

1.3.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

服務發現、負載均衡、熔斷機制這種模式為Spring Cloud客戶端提供了一個通用的抽象層。

spring-cloud-contract

1.0.5.RELEASE

1.1.3.RELEASE

1.2.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

 

spring-cloud-config

1.2.3.RELEASE

1.3.2.RELEASE

1.4.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

配置管理工具,支持使用git、svn等存儲配置文件。並在支持客戶端配置信息的刷新,加密解密配置內容等。

spring-cloud-netflix

1.2.7.RELEASE

1.3.4.RELEASE

1.4.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

核心組件,對多個NetflixOSS開源套件進行整合。

spring-cloud-security

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

安全工具包。

spring-cloud-cloudfoundry

1.0.1.RELEASE

1.1.0.RELEASE

1.1.0.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

整合Pivotal Cloudfoundry(Vmware推出的業界第一個開源PaaS雲平台)支持。

spring-cloud-consul

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

服務發現與配置管理工具

spring-cloud-sleuth

1.1.3.RELEASE

1.2.4.RELEASE

1.3.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

Spring Cloud應用的分布式跟蹤實現。

spring-cloud-stream

Brooklyn.SR3

Chelsea.SR2

Ditmars.M2

Elmhurst.M1

Elmhurst.BUILD-SNAPSHOT

通過Redis、RabbitMQ、Kafka實現的消息微服務。

spring-cloud-zookeeper

1.0.4.RELEASE

1.1.2.RELEASE

1.2.0.M1

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

基於ZooKeeper的服務發現與配置管理組件。

spring-boot

1.4.5.RELEASE

1.5.4.RELEASE

1.5.6.RELEASE

2.0.0.M3

2.0.0.M3

 

spring-cloud-task

1.0.3.RELEASE

1.1.2.RELEASE

1.2.0.RELEASE

2.0.0.M1

2.0.0.RELEASE

用於快速構建數據處理的應用。

spring-cloud-vault

 

1.0.2.RELEASE

1.1.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

 

spring-cloud-gateway

 

 

1.0.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

SpringCloud網關相關的整合實現。

 


2. 版本說明

 

 

3. SpringCloud框架特點

 

 

 

7.和springboot的關系

Spring boot 是 Spring 的一套快速配置腳手架,可以基於spring boot 快速開發單個微服務,Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;

Spring boot專注於快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;

spring boot使用了默認大於配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現,可以不基於Spring boot嗎?不可以。

Spring boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring boot,屬於依賴的關系。

spring -> spring booot > spring cloud 這樣的關系。

 

 

8.springCloud的優勢

微服務的框架那么多比如:dubbo,為什么就要使用Spring Cloud的呢?

  • 產出於spring大家族,spring在企業級開發框架中無人能敵,來頭很大,可以保證后續的更新、完善。比如dubbo現在就差不多死了
  • 有spring Boot 這個獨立干將可以省很多事,大大小小的活spring boot都搞的挺不錯。
  • 作為一個微服務治理的大家伙,考慮的很全面,幾乎服務治理的方方面面都考慮到了,方便開發開箱即用。
  • Spring Cloud 活躍度很高,教程很豐富,遇到問題很容易找到解決方案
  • 輕輕松松幾行代碼就完成了熔斷、均衡負責、服務中心的各種平台功能

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM