Spring Cloud學習之-什麼是Spring Cloud?

SpringCloud

什麼是微服務?

要想學習微服務,首先須要知道什麼是微服務?爲何會有微服務?相信看完架構的發展史讀者就會明白html

架構發展史

單體應用架構

1580046416056

如圖所示:將全部的模塊,全部內容(頁面、Dao、Service、Controller)所有寫入一個項目中,放在一個Tomcat容器中啓動適用於小型項目ios

優勢:開發速度快,能夠利用代碼生成工具快速的開發一個項目web

缺點:不易擴展,代碼耦合度高,且不容錯(當某部分出錯後整個服務就會中止運行)spring

垂直架構

1580046801449

既然原來單體架構中代碼耦合度高,不利於維護和運行,人們天然就想到將不一樣的內容分開。最簡單合理的方式就是將系統按照功能劃分紅不一樣的模塊,而後將各模塊獨立放入不一樣的Web容器中,這就造成了垂直架構數據庫

優勢:代碼耦合度下降,且不一樣模塊之間能夠獨立運行。一旦某個模塊壓力過大,能夠針對性的搭集羣服務器

缺點:模塊之間有可能不是那麼徹底獨立,致使實體類或者其餘層代碼不能複用,須要多出粘貼,不方便往後維護。若是直接經過HTTP調用又不是很合理。架構

分佈式架構/分佈式SOA架構

分佈式架構顧名思義就是分散部署在不一樣的機器上的服務,一個服務可能負責幾個功能,是一種面向SOA架構的,服務之間也是經過rpc來交互或者是webservice來交互的架構。從開發的角度看就是Controller層(服務消費者)和Service層(服務提供者)分紅不一樣的項目,部署在不一樣的服務器上,經過RPC(遠程方法調用)來實現交互。阿里巴巴著名的Dubbo框架就是做爲分佈式架構的框架。通常推薦使用Zookeeper做爲服務的註冊中心,負責註冊和發現服務的提供者,並供服務的消費者消費app

微服務

微服務的提出者馬丁·福勒關於微服務的論文中文翻譯版負載均衡

單體架構和微服務的比較圖示:框架

1580103548314

微服務的核心就是將傳統的一站式應用,根據業務拆分紅一個個原子應用。完全地去耦合,一個服務只作一件事情,從技術角度講就是一個服務就是一個進程,能夠單獨啓動或銷燬,擁有獨立的數據庫。而且經過配置中心能夠方便的切換數據庫等。

優勢:

  • 每一個服務足夠內聚,足夠小,代碼容易理解,一個服務可能就是專注的只幹一件事。開發簡單、開發效率提升
  • 微服務可以被小團隊單獨開發,這個小團隊能夠是由2到5人的開發人員組成
  • 微服務能使用不一樣的語言開發。易於和第三方集成,微服務容許容易且靈活的方式集成自動部署,經過持續集成工具,如Jenkins, Hudson, bamboo 。微服務容許你利用融合最新技術。
  • 微服務易於被一個開發人員理解,修改和維護,這樣小團隊可以更關注本身的工做成果。無需經過合做才能體現價值。

缺點:

  • 開發人員要處理分佈式系統的複雜性,會面臨分佈式事務、分佈式一致性等問題
  • 多服務運維難度,隨着服務的增長,運維的壓力也在增大
  • 服務間通訊成本變高

微服務的技術棧

微服務條目 落地技術 備註
服務開發 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、Spectator等
全鏈路追蹤 Zipkin,Brave、Dapper等
服務部署 Docker、OpenStack、Kubernetes等
數據流操做開發包 SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發送接收消息)
事件消息總線 Spring Cloud Bus

什麼是Spring Cloud

Spring Cloud 是實現微服務思想落地開發的一整套技術的集合

1580132941867

Spring Cloud和Dubbo的區別圖解

1580133791055

Spring Cloud開發者文檔中文版:

https://springcloud.cc/spring-cloud-dalston.html

Spring Cloud中國社區

http://springcloud.cn/

Spring Cloud中文網

https://springcloud.cc/

相關文章
相關標籤/搜索