天天看點

SpringCloud 入門 (一)

SpringCloud是什麼?

Spring官網:https://spring.io/

SpringCloud, 基于SpringBoot提供了一套微服務解決方案,包括服務注冊于發現,配置中心,全鍊路監控,服務網關,負載均衡,熔斷器等元件,除了基于NetFlix的開源元件做高度抽象封裝之外,還有一些選型中立的開源元件。

SpringCloud利用SpringBoot的開發便利性,巧妙的簡化了分布式系統基礎設施的開發,為開發人員提供了快速建構分布式系統的一些工具,包括配置管理,服務發現,熔斷器,路由,微代理,事件總線,全局鎖,決策競選,分布式會話等

SpringBoot并不是重複造輪子,它隻是将各公司開發比較成熟的服務架構結合起來,以SpringBoot的風格進行封裝,屏蔽了複雜的配置和實作原理,最終給開發者留出一套簡單易懂,易部署和易維護的分布式系統開發工具包

SpringCloud 入門 (一)
SpringCloud 入門 (一)

SpringCloud和SpringBoot的關系

  1. SpringBoot專注于快速、友善的開發單個個體微服務
  2. SpringCloud是關注全局的微服務協調整理治理架構,它将SpringBoot開發的一個個單體微服務,整合并管理起來,為各個微服務之間提供:配置管理、服務發現、斷路器、路由、為代理、事件總棧、全局鎖、決策競選、分布式會話等等內建服務;
  3. SpringBoot可以離開SpringCloud獨立使用,開發項目,但SpringCloud離不開SpringBoot,屬于依賴關系;

Dubbo 和 SpringCloud技術選型

目前成熟網際網路架構圖

SpringCloud 入門 (一)
Dubbo SpringCloud
服務注冊中心 Zookeeper Spring Cloud Netfilx Eureka
服務調用方式 RPC REST API
服務監控 Dubbo-monitor Spring Boot Admin
斷路器 不完善 Spring Cloud Netfilx Hystrix
服務網關 Spring Cloud Netfilx Zuul
分布式配置 Spring Cloud Config
服務跟蹤 Spring Cloud Sleuth
消息總棧 Spring Cloud Bus
資料流 Spring Cloud Stream
批量任務 Spring Cloud Task

最大差別:Spring Cloud 抛棄了Dubbo的RPC通信,采用的是基于HTTP的REST方式

嚴格來說,這兩種方式各有優劣。雖然從一定程度上來說,後者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務提供方和調用方的依賴隻依靠一紙契約,不存在代碼級别的強依賴,這個優點在當下強調快速演化的微服務環境下,顯得更加合适。

總結:

二者解決的問題域不一樣:Dubbo的定位是一款RPC架構,而SpringCloud的目标是微服務架構下的一站式解決方案。

SpringCloud能做什麼?

  • Distributed/versioned configuration 分布式/版本控制配置
  • Service registration and discovery 服務注冊與發現
  • Routing 路由
  • Service-to-service calls 服務到服務的調用
  • Load balancing 負載均衡配置
  • Circuit Breakers 斷路器
  • Distributed messaging 分布式消息管理

下載下傳

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

SpringCloud 入門 (一)

SpringCloud沒有采用數字編号的方式命名版本号,而是采用了倫敦地鐵站的名稱,同時根據字母表的順序來對應版本時間順序,比如最早的Realse版本:Angel,第二個Realse版本:Brixton,然後是Camden、Dalston、Edgware,目前最新的是Hoxton SR4 CURRENT GA通用穩定版

繼續閱讀