1. 程式人生 > >微服務常見問題及解決方案

微服務常見問題及解決方案

1、分解模式:如何把應用分成若干個小服務?

1)按業務功能分解,將應用分解成能產生業務價值的最小單元。

2)對於跨多個業務的類(如訂單會被訂單管理、訂單交付多個服務用到)用領域驅動設計(DDD),使用子域和邊界上下文的概念來著手解決。

2、整合模式

1)API閘道器模式

2)聚合器模式

3、資料庫模式

1)按服務分配資料庫,為每個微服務配一個獨立的資料庫;

2)按服務共享資料庫,一個數據庫不要超過3個微服務,否則會影響擴容、自治和獨立性。

3)命令查詢職責隔離

4、觀測模式

1)日誌聚合:將多臺機器上多個服務例項的請求匯聚到一起搜尋和分析

2)效能指標:服務出現問題及時發出告警

3)分散式追蹤:追蹤橫跨多個微服務的問題點,如Spring Cloud Slueth + Zipkin Server,是一種常見的實現方式。

4)健康檢查:確保負載均衡不會將請求發給不健康的結點

5、橫切關注點

1)外部配置:外部化所有配置,確保應用啟動時能載入。實現不重啟服務重新整理

2)服務發現模式

3)斷路器模式

4)藍綠部署模式

6、微服務架構模式:Sidecar 模式、鏈式微服務(Chained Microservice)、分支微服務(Branch Microservice)、事件溯源模式(Event Sourcing Pattern)、和持續交付方式等。