今天和大家聊一下微服務閘道器 Spring Cloud Gateway。Spring Cloud Gateway 是 Spring Cloud 的一個全新專案,該專案是基於Spring 5.0、Spring Boot 2.0 和Project Reactor 等元件技術,Spring Cloud Gateway的效能和功能表現都很優異。
筆者去年也寫了幾篇關於Spring Cloud Gateway的文章。從當時最先基於v2.0.0.M8
,之後體驗了RC版本,然後是v2.0.0.RELEASE
,也曾擼過一遍原始碼,對閘道器的原理與實現還是比較熟悉的。最近抽空看了看最新的版本v2.1.0.RELEASE
,在功能上有一些迭代,功能愈加完善。這次特地分享Spring Cloud Gateway的應用實戰。本次分享基於的Spring Cloud Gateway版本為v2.0.2.RELEASE
,對應的Spring Cloud的版本為Greenwich.RELEASE
。
chat內容簡介
微服務最早是由Martin Fowler與James Lewis於2014年共同提出。時至今日,微服務架構已經成為了主流的架構模式。微服務架構風格是一種使用一系列粒度較小的服務來開發單個應用的方式 。
當使用單體應用程式架構時,客戶端(web和移動端)通過向後端應用程式發起一次REST呼叫來獲取資料。負載均衡器將請求路由給N個相同的應用程式例項中的一個。然後應用程式會查詢各種資料庫表,並將響應返回給客戶端。微服務架構下,單體應用被切割成多個微服務,如果將所有的微服務直接對外暴露,勢必會出現安全方面的各種問題。
在微服務架構中,API閘道器是一個服務,是系統的唯一入口。從物件導向設計的角度看,它與外觀模式類似。API閘道器封裝了系統內部架構,為每個客戶端提供一個定製的API。它可能還具有其它職責,如身份驗證、監控、負載均衡、限流、降級與應用檢測。
目錄
- 微服務架構與 API 閘道器介紹;
- 與Spring Cloud Netflix Zuul的對比;
- 使用Spring Cloud Gateway構建閘道器;
- Hystrix斷路器在微服務閘道器中的應用;
- 整合統一認證授權;
- 閘道器的異常處理。
最後
感興趣的讀者可以參與下本次GitChat,之前的文章也零碎介紹了Spring Cloud Gateway,如果已經上手Gateway了的小夥伴就沒有必要再參加了。本次Chat的特點是基於最新版本的Spring Cloud Gateway,並串起來講解一個完整的Spring Cloud Gateway實戰應用,文章之後會有讀者群交流。