SpringCloud(2)---SpringCloud入門篇

SpringCloud理解篇

 

1、微服務概述

一、什麼是微服務

      目前的微服務並無一個統一的標準,通常是以業務來劃分將傳統的一站式應用,拆分紅一個個的服務,完全去耦合,一個微服務就是單功能業務,只作一件事。ios

      與微服務相對的叫巨石 。數據庫

二、微服務與微服務架構

  • 微服務是一種架構模式或者一種架構風格,提倡將單一應用程序劃分紅一組小的服務==獨立部署==,服務之間相互配合、相互協調,每一個服務運行於本身的==進程==中。
  • 服務與服務間採用輕量級通信,如HTTP的RESTful API等
  • 避免統一的、集中式的服務管理機制 

三、微服務的優缺點

優勢架構

  1. 每一個服務足夠內聚,足夠小,比較容易聚焦
  2. 開發簡單且效率高,一個服務只作一件事情
  3. 開發團隊小,通常2-5人足以(固然按實際爲準)
  4. 微服務是鬆耦合的,不管開發仍是部署均可以獨立完成
  5. 微服務能用不一樣的語言開發
  6. 易於和第三方集成,微服務容許容易且靈活的自動集成部署(持續集成工具備Jenkins,Hudson,bamboo等)
  7. 微服務易於被開發人員理解,修改和維護,這樣可使小團隊更加關注本身的工做成果,而無需必定要經過合做才能體現價值
  8. 微服務容許你融合最新的技術
  9. ==微服務只是業務邏輯的代碼,不會和HTML,CSS或其餘界面組件融合==。
  10. ==每一個微服務均可以有本身的存儲能力,數據庫可自有也能夠統一,十分靈活==。

缺點app

  1. 開發人員要處理分佈式系統的複雜性
  2. 多服務運維難度,隨着服務的增長,運維的壓力也會增大
  3. 依賴系統部署
  4. 服務間通信的成本
  5. 數據的一致性
  6. 系統集成測試
  7. 性能監控的難度 

四、微服務的技術棧

微服務條目 落地技術
服務開發 SpringBoot,Spring,SpringMVC
服務配置與管理 Netflix公司的Archaius、阿里的Diamond等
服務註冊與發現 Eureka、Consul、Zookeeper等
服務調用 Rest、RPC、gRPC
服務熔斷器 Hystrix、Envoy等
負載均衡 Ribbon、Nginx等
服務接口調用(客戶端調用服務的簡化工具) Feign等
消息隊列 Kafka、RabbitMQ、ActiveMQ等
服務配置中心管理 SpringCloudConfig、Chef等
服務路由(API網關) Zuul等
服務監控 Zabbix、Nagios、Metrics、Specatator等
全鏈路追蹤 Zipkin、Brave、Dapper等
服務部署 Docker、OpenStack、Kubernetes等
數據流操做開發包 SpringCloud Stream(封裝與Redis,Rabbit,Kafka等發送接收消息)
事件消息總線 SpringCloud Bus

 

 

2、SpringCloud入門概述

       Spring的三大模塊:SpringBoot(構建),Spring Cloud(協調),Spring Cloud Data Flow(鏈接) 負載均衡

一、SpringCloud是什麼

  • 分佈式系統的簡化版(官方介紹)
  • SpringCloud基於SpringBoot提供了一整套微服務的解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於Netflix的開源組件作高度抽象封裝以外,還有一些選型中立的開源組件
  • SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分佈式系統的基礎設施開發,SpringCloud爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線,全局所、決策精選、分佈式會話等等,他們均可以用SpringBoot的開發風格作到一鍵啓動和部署。
  • ==一句話歸納:SpringCloud是分佈式微服務架構下的一站式解決方案,是各個微服務架構落地技術的幾何體,俗稱微服務全家桶== 

二、SpringCloud和SpringBoot的關係

    SpringBoot:專一於快速方便的開發單個個體微服務(關注微觀)框架

  SpringCloud:關注全局的微服務協調治理框架,將SpringBoot開發的一個個單體微服務組合並管理起來(關注宏觀)運維

  注意:SpringBoot能夠離開SpringCloud獨立使用,可是SpringCloud不能夠離開SpringBoot,屬於依賴關係分佈式

三、Dubbo和SpringCloud比較

  Dubbo Spring
服務註冊中心 Zookeeper Spring Cloud Netfilx Eureka
服務調用方式 RPC REST API
服務監控 Dubbo-monitor Spring Boot Admin
斷路器 不完善 Spring Cloud Netflix Hystrix
服務網關 Spring Cloud Netflix Zuul
分佈式配置 Spring Cloud Config
服務跟蹤 Spring Cloud Sleuth
消息總線 Spring Cloud Bus
數據流 Spring Cloud Stream
批量任務 Spring Cloud Task

 

 最大區別微服務

(1)Spring Cloud拋棄了RPC通信,採用基於HTTP的REST方式。Spring Cloud犧牲了服務調用的性能,可是同時也避免了原生RPC帶來的問題。REST比RPC更爲靈活,不存在代碼級別的強依賴,在強調快速演化工具

的微服務環境下,顯然更合適。

(2)Dubbo像組裝機,Spring Cloud像一體機

(3)社區的支持與力度:Dubbo曾經停運了5年,雖然重啓了,可是對於技術發展的新需求,仍是須要開發者自行去拓展,對於中小型公司,顯然顯得比較費時費力,也不必定有強大的實力去修改源碼  

總結

     解決的問題域不同:Dubbo的定位是一款RPC框架,Spring Cloud的目標是微服務架構下的一站式解決方案 

 

想太多,作太少,中間的落差就是煩惱。想沒有煩惱,要麼別想,要麼多作。中校【8】 

相關文章
相關標籤/搜索