微服務(一)

向大佬們學習的第一天 2020.4.15

微服務(一)

微服務架構

微服務架構
微服務架構其實是一種架構風格、將一個單一應用程序分解成一組小型服務的方法,每個小的服務運行在自己的進程中,服務間通信採用輕量級通信機制(http、tcp),這些服務圍繞業務能力構建並通過自動部署機制獨立部署,這些服務共用一個最小型的集中式管理。服務之間可以用不同語言開發,使用不同數據存儲技術。
特徵:
每個微服務獨立運行在自己的進程裏
一系列微服務共同構建起一個完整系統
每個微服務爲獨立的業務開發,並且只關注某個特定功能
微服務之間通過輕量級通信機制如restful api進行調用
可以使用不同語言進行開發
全自動部署機制

那麼:爲什麼要把系統拆成各個小塊呢。
面對一個很複雜的單體應用、修改起來會特別複雜
技術債務,隨着時間推移、人員更替、都忘記了
部署頻率低
可靠性差

springCould介紹

springCould介紹
springCould是一個基於Springboot實現的微服務架構開發工具,爲微服務架構中涉及的配置管理,服務治理,斷路器,智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話和集羣狀態管理等操作提供一種簡單的開發方式
特徵:
開箱即用
約定優於配置
適用各種環境
隱藏組件複雜性,提供聲明式、無xml配置方式
輕量級組件

註冊中心:Eureka介紹

註冊中心:Eureka介紹
在這裏插入圖片描述
這圖很好的解釋了註冊中心是幹嘛用的:
1、服務提供者將服務註冊到註冊中心
2、服務消費者通過註冊中心查找服務
3、查找到服務後進行調用(這裏就是無需硬編碼url的解決方案)
4、服務的消費者與服務註冊中心保持心跳連接,一旦服務提供者的地址發生變更時,註冊中心會通知服務消費者

Eureka(註冊中心)
是NetFlix開源服務發現組件,本身是一個基於REST的服務,包含Server和Client兩部分,SpringCould將它集成在子項目SpringCouldNetFlix中,從而實現微服務的註冊與發現
Eureka包括 Eureka Server和Eureka Client
Eureka Server 提供服務註冊,將各個節點的信息存儲到服務註冊表中
Eureka Client 是一個java客戶端,用於簡化與Eureka Server的交互
Eureka Server的默認心跳週期爲30s,在3個心跳週期內如果沒有接受到節點的心跳,就會移除該心跳
Eureka Server之間通過複製的方式完成數據同步,Eureka還提供客戶端緩存,確保系統的高可用性和靈活性。
Eureka Server還可以有多個註冊中心,以集羣的方式提高系統可用性

負載均衡:Ribbon

負載均衡:Ribbon
負載均衡的作用就是當 提供者在Eureka註冊中心註冊了多個服務來保證系統的高可用性,那麼這麼多個同一功能的服務怎麼被調用呢,就用到Ribbon、
Ribbon是NetFlix發佈的負載均衡器,用於控制http和tpc客戶端行爲,Ribbon可基於各種負載均衡算法自動幫助消費者進行請求(輪詢、隨機、自定義)
在這裏插入圖片描述

容錯保護:Hystrix

容錯保護:Hystrix
場景:一個服務單元宕機、導致一系列服務單元都故障、最終導致整個系統癱瘓。也就是俗稱的“雪崩效應”
SpringCould Hystrix 實現斷路器、線程隔離等一系列服務保護功能,也是基於NetFlix開源框架實現, 該框架通過控制那些訪問遠程系統、服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力,
Hystrix 具備服務降級、服務熔斷、線程和信號隔離、請求緩存、服務監控等功能
特徵:
包裹請求:控制遠程訪問的節點
線程隔離:Hystrix 爲每個依賴都維護一個小型線程池、
監控:
跳閘機制:當某個服務錯誤率超過一定閾值、Hystrix可以自動跳閘、停止該節點請求
雪崩效應
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章