一個典型的微服務架構(MSA)通常包含以下組件:
- 客戶端
- 身份標識提供者: 提供訪問服務所需的身份密鑰,服務網關會負責完成對請求客戶端的基本驗籤工作
- API服務網關: 客戶端訪問目標服務的入口點,經服務請求經服務網關路由到目標服務提供方。服務網關的優點:
- 服務更新操作對客戶端透明
- 服務與服務之間的消息路由協議不一定非得基於WEB
- 服務網關可以統一進行安全授權或者負載均衡等操作
- 消息:
- 同步消息機制:REST,HTTP
- 異步消息機制:AMQP, STOMP, MQTT
- 數據庫: 每個微服務都有自己相對獨立的數據源,並且完成相對獨立的業務功能。
- 靜態資源: 微服務中靜態資源通常通過Content Delivery Networks (CDNs). 管理和分發
- 服務管理: 主要負責節點間服務均衡以及故障是識別
- 服務發現: 維護服務列表以及服務路由
微服務架構優缺點
優點 | 缺點 |
---|---|
多技術棧 | 增加問題定位難度 |
服務功能單一純粹、僅負責單一業務功能 | 因爲服務調用鏈路增加,所以延遲增加 |
支持獨立部署 | 額外的配置和其他管理操作 |
支持連續的服務更新 | 增加事務一致性的挑戰 |
有效確保單個服務的安全性 | 跨服務鏈路導致數據難以跟蹤 |
多個服務並行開發和部署 | 服務直接難以共享代碼 |
原文鏈接: