微服務常見問題及解決方案
阿新 • • 發佈:2018-11-14
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)、和持續交付方式等。