API Gateway(Api 網關)編程
爲體系(或子系統)提供統一的訪問入口跨域
在統一訪問的基礎上,可以實現緩存
訪問的認證與受權(策略控制)安全
動態路由服務器
服務遷移架構
負載均衡負載均衡
限流、降級等反向代理框架
測試規劃運維
壓力測試異步
金絲雀測試(灰度測試)
服務註冊中心(Service Register Server)
全部微服務都會註冊在中心
註冊中心提供功能(服務器端)
服務註冊
服務下線
服務續約
剔除失效服務
客戶端
服務獲取
服務調用
容錯
大體可歸爲三類:
配置管理中心(Configuration Server)
分佈式配置管理中心
每一個服務都有可能包含不一樣類型的配置
提供的經常使用功能
提供統1、集中配置管理
不一樣環境提供不一樣配置
運行期間的動態配置更新
配置版本管理(回滾)
受權與認證服務(策略控制)
一般是身份認證與安全控制
服務提供的功能
安全、簡單和開放
服務無狀態
能跨語言、跨服務(甚至跨域)調用傳遞
具備足夠性能
OAuth2/JWT
斷路器與容錯機制
分佈式系統中不可避免失敗,因此須要創建一種有效的防護機制來避免和隔離失敗
斷路器或容錯機制須要面對:
隔離:線程隔離,信號量隔離。避免個別服務故障擴大。
熔斷:當失敗率達某閾值時,觸發快速失敗
降級:超時降級、熔斷降級,可使用回調返回保底數據
緩存:請求緩存、請求合併
實時監控與報警
分佈式服務追蹤與日誌整合
根據服務的劃分,帶來就是一個業務會由多個服務協做完成,造成調用鏈。
咱們須要追蹤和監控這些鏈路,最終掌握服務的工做質量
每一個調用的實時數據收集
數據存儲
數據分析與展現
消息總線與消息驅動
EDA:事件驅動架構,自己就是一個應用普遍的設計與開發思想。消息發佈者只關注消息的發佈,而消費者只關注本身感興趣的消息。
EDA 帶來的好處:
低耦合
持久性
高可擴展性
高靈活性
運行環境平臺管理
使用 Docker 做爲每一個微服務的運行容器
引入 Docker 管理平臺
OpenShift Origin (RadHat)
Kubernetes(CNCF)
其餘內容
數據存儲
MySQL
Splunk
ELK
Redis
消息忠線
DevOps
Jenkins --- 持續集成
Git --- 源代碼管理
Ansible --- 運維
雲應用開發框架
Spring Cloud 全家桶
Dubbo (阿里巴巴)
Vert.X (Eclipse 基金會)
Spring 家族
Spring Framework -- 基礎
Spring Boot -- 應用整合
簡化配置
大量應用整合
Spring Data 數據存取
Spring Cloud 雲應用整合
Spring Security -- 安全
Spring Cloud 全家桶
提供完整微服務開發框架
API 網關
Spring Cloud Netflix Zuul
Spring Cloud Gateway
服務註冊中心
Spring Cloud Netflix Eureka
Spring Cloud Consul
Spring Cloud ZooKeeper
配置管理中心
受權與認證服務
斷路器與容錯處理
分佈式服務追蹤與日誌整合
Spring Cloud Sleuth
Spring Cloud Zipkin
消息總線與消息驅動
Spring Cloud Stream
Spring Cloud Bus
其餘
客戶端負載均衡:Spring Cloud Ribbon
REST 聲明式編程:Spring Cloud Feign