微服務及Springcloud介紹


    

一.什么是微服務?

  分布式服務組成的系統,主要是為了項目的解耦,將功能分解到離散的各個服務當中,傳統的(例如:SSM,SSH )不靈活,構建時間長,任何小修改都要重構整個項目,一個小項目可能導致整個項目掛掉,所以就有了微服務,我們可以把整個系統根據業務拆分成多個子系統,每個子系統可以部署多個應用,多個應用使用負載均衡。

二.微服務架構需要的功能或使用場景

  1.把整個項目根據業務拆分成多個子項目。

  2.每個子項目可以部署多個應用,多個應用之間可以進行負載均衡。

     3.需要一個服務注冊中心(eureka) 所有的服務都在注冊中心注冊,負載均衡(Ribbon) 也是通過在注冊中心注冊的服務來使用一定的策略來實現。

  4.所有的客戶端都通過同一個網關(ZUUl) 地址訪問后台的服務,通過路由配置,網關來判斷一個URL請求有哪個服務處理。請求轉發到服務上的時候也使用負載均衡。

  5.服務之間有時候也需要相互訪問,例如有一個用戶模塊,其他服務在處理一些業務的時候,要獲取用戶服務的用戶數據

  6.需要一個斷路器,及時處理服務調用時的超時和錯誤,防止由於其中一個服務的問題而導致整個系統的癱瘓。

  7.還需要一個監控功能,監控每個服務調用花費的時間

目前主流的微服務框架:Dubbo、 SpringCloud、thrift、Hessian等

二.微服務架構的優點

  1.易於開發和維護,一個微服務只關注一個業務,業務清晰,代碼量少

    2.單個微服務代碼量少,啟動快

    3.局部修改容易部署

    4.技術不受限制

三.微服務面臨的挑戰

  1.運維要求高

  2.使用分布式系統,系統容錯,網絡延遲,分布式事務等巨大的挑戰

  3.接口調用成本高,微服務之間通過接口通信,如果修改一個微服務的API,可能所有使用該接口的微服務都需要調整

  4.很多服務可能會使用相同的功能,導致代碼重復

微服務整體架構圖

 

 

 四.springcloud介紹

  1.springcloud是基於springboot 開發的微服務框架,是目前比較完整的微服務解決方案框架,它的內容包括:服務注冊(eureka),服務調用(feign) ,負載均衡(Ribbon) ,斷路器(Hystrix)等

  springcloud包含多個子項目:

    springcloud config:分布式配置中心

    springcloud netfix:核心組建

       ureka:服務注冊中心

         Ribbon:客戶端負載均衡

      Feign: 服務調用組建

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

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

 

 


免責聲明!

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



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