微服務架構學習筆記


一、微服務架構特點

1、服務服務力度:粒度是圍繞業務進行拆分的。

2、獨立進程:任何一個微服務從它的開發,測試,上線,以及運維等過程都可以獨立的進行,不依賴以其他的微服務。

3、圍繞業務建模:微服務架構是圍繞業務建模的

4、輕量級通信:通信模式是輕量級的,兩個模塊之間的通信沒有語言關系,沒有平台關系。

5、去中心化管理:微服務具體用的語言,平台都沒有強行的規定,以平台,語言沒有依賴關系。

 

二、微服務架構設計

微服務網關:作為客戶端服務器,它會維護海量的鏈接,對用戶身份的校驗,session的管理,請求的轉發。不做業務處理。對外提供HTTP接口。

微服務聚合層:根據用戶的請求,拆分為多個微服務原子層,向微服務原子層發送請求,發送回來之后在微服務聚合層把請求的結果匯集起來,提供給微服務網關層,把結果返回給客戶端。提供RPC接口。

微服務原子層:提供這些微服務的增刪改查的修改。提供RPC接口。

微服務數據層:對每一個微服務的數據單獨存在一個數據庫中。

去中心化管理:采用相同的語言開發。

  備注:

  網關層:http/https接口協議,安全

  聚合層:服務器內部同過rpc接口協議,傳輸更快,通信效率更高

  需要兩個中心:微服務注冊中心、微服務配置中心

 

將聚合層再按業務功能拆分成多個聚合層

 

 三、通信協議和服務的注冊、發現

通信協議-輕量級通信協議

  1、REST:基於HTTP,與語言、平台無關

  2、HAL:基於REST協議做的一個提升,國內用的暫時比較少

  3、RPC:遠程過程調用,國內開源RPC框架用得比較多,如:Apache、Thrift、gRpc、dubbo

  4、消息隊列:兩個微服務通過消息隊列通信,可以把同步的調用變成異步的調用

 

RPC相較HTTP的優勢:

  1、省去了HTTP頭信息,傳輸包更輕量

  2、基於TCP長連接,效率比較高

  3、安全方面高於HTTP

 

 

四、柔性可用和服務治理

1、為什么需要柔性可用?

  流量高峰期,短時請求量大的情況下:服務能力有限、性能下降、服務宕機、系統雪崩

 

2、柔性設計如何做?

  目標:保證核心服務可用;非核心服務弱可用,甚至不可用

  方式:系統降級、數據層降級、柔性可用策略

  (1)系統降級:拒絕部分請求、關閉部分服務(業務緊密)

    

  (2)數據層降級

      更新請求:持久到消息隊列,只更新緩存,暫不更新數據庫

      讀請求:讀取緩存

      數據補齊:后續需將消息隊列中的數據寫入數據庫中

  (3)柔性可用策略

      自動打開柔性可用策略,不依賴人員手動開啟

      測試環境時需演練,確保線上生效

 

 3、服務治理

(1)服務需要監控:監控進程狀態,及時發現問題,掌握主動權

(2)主要監控:機器資源、進程狀態

(3)監控手段:

  

(4)微服務實時監控

  例如:請求平均耗時、請求異常條數等,對比最近幾天的數據情況發現問題

(5)微服務監控框架:open-falcon、定制開發

 


免責聲明!

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



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