springcloud之簡介


 springcloud官方文檔翻譯網站:https://springcloud.cc/

一、網站架構的演變過程。(這些架構描述的不是很到位,之后需要從新學習)

  傳統架構  —>   分布式架構   —>   SOA架構   —>   微服務架構

  架構博客:https://www.cnblogs.com/Survivalist/p/8012266.html

  1、傳統架構

  傳統架構其實就是SSH或SSM,屬於單點應用,把整個業務模塊都會在一個項目進行開發,分為MVC架構,會拆分成控制層、業務邏輯層、數據庫訪問層(持久層)。

  傳統架構一般適合於一個人或者小型團隊開發。

  缺點:耦合度太高,一旦某個模塊導致服務不可用,可能會影響到其他模塊。

  2、分布式架構

  分布式架構是基於傳統架構演變過來的,將傳統的項目以項目模塊拆分成多個子項目,比如:

拆分會員項目、訂單項目、支付項目、優惠券項目等,每個項目都有自己的獨立數據庫,獨立redis等。

 

  優點:
  1、把模塊拆分,使用接口通信,降低模塊之間的耦合度。
  2、把項目拆分成若干個子項目,不同的團隊負責不同的子項目。
  3、增加功能時只需要再增加一個子項目,調用其他系統的接口就可以。
  4、可以靈活的進行分布式部署。
  (並發量太大的話就要使用緩存(memcached、radis等))
  缺點:
  系統之間交互需要使用遠程通信,接口開發增加工作量。

 

  3、SOA架構

   SOA架構代表面向服務架構,俗稱服務化。通俗的理解為面向於業務邏輯層開發,將共同的業務邏輯抽取出來形成的一個服務。提供給其他服務接口進行調用,服務於服務之間調用使用rpc遠程技術。

  SOA架構的缺點:

  (1)、依賴於中心化服務發現機制。

  (2)、SOA架構采用的是SOAP協議(Http+xml),因為xml傳輸協議比較占用寬帶,整個xml報文中有非常大的冗余數據,所有在微服務架構中以輕量級的json方式代替了xml報文傳輸。

  4、微服務

  微服務架構是從SOA架構中演變過來的,比SOA架構上的粒度更加精細。讓專業的人做專業的事情,目的就是為了提高效率。每個服務之間互相不受影響,每個服務必須獨立部署(獨立數據庫、獨立Redis等),微服務架構更加提醒輕量級,采用restful風格提供的API,也就是使用HTTP協議+json格式進行傳輸,更加輕巧,更加適用於互聯網公司敏捷開發、快速迭代產品。

   微服務架構如何拆分:

  1、微服務把每一個職責,單一功能存放在獨立服務器中。

  2、每個服務運行在單獨進程中,能夠單獨啟動或銷毀。

  3、每個服務有自己獨立的數據庫存儲,實際上有自己獨立的緩存、數據庫、消息隊列等資源。

  5、微服務架構與SOA架構的區別

  (1)、微服務架構基於SOA架構演變過來,繼承SOA架構的優點,在微服務架構中去除SOA架構中的ESB消息總線,采用http+json(restful)進行傳輸。

  (2)、微服務架構對比SOA架構粒度會更加精細,讓專業的人干專業的事情,目的是為了提高效率,每個服務於服務之間互不影響。在微服務架構中,每個服務必須獨立部署,微服務架構更加輕巧、輕量。

  (3)、SOA架構中可能數據庫存儲會發生共享,微服務強調每個服務都有獨立數據庫,保證每個服務於服務之間互不影響。

  (4)、項目體現特征,微服務架構比SOA架構更加適合於互聯網公司的敏捷開發、快速迭代版本。

 

二、springcloud簡介

  1、springcloud是基於springboot基礎之上開發的微服務框架,springcloud是一套目前比較完整的微服務解決方案框架,其內容包含服務治理、注冊中心、配置管理、斷路器、智能路由、微代理、控制總線、全局鎖、分布式會話等。

  springcloud包含眾多的子項目:

    springcloud config :分布式配置中心

    springcloud netfix :核心組件

      Eureka :服務治理 注冊中心

      Hystrix :服務保護框架(斷路器) 

      Ribbon : 客戶端負載均衡器

      Feign : 基於Ribbon和Hystrix的聲明式服務調用組件

      Zuul : 網關組件,提供智能路由、訪問過濾等功能

  

  2、為什么要選中springcloud

  因為springcloud的出現,對微服務技術提供了非常大的幫助,springcloud提供了一套比較完整的服務解決方案,不想其他框架只是解決了微服務中的某個問題。

  例如:

  服務治理:阿里巴巴開源的Dubbo和當當網在其基礎上擴展的Dubbox、Eureka、Apache的Consul等。

  分布式配置中心:百度的disconf、Netfix的Archaius、360的QConf、springcloud、攜程的阿波羅等。

  分布式任務:xxl-job、elastic-job、springcloud的task等

  服務跟蹤:京東的Hyra、springcloud的sleuth。

 


免責聲明!

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



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