本章我們簡單介紹微服務架構下的API服務網關,本章我們將討論以下話題:
- 什麼是API服務網關
- 爲什麼需要API服務網關
- API服務網關的工作機制
處理橫切關注點
當我們在開發設計大型軟件應用時,我們一般都會採用分層的架構模式,比如,在WEB應用程序中,下面的這種架構是我們最爲常見的設計模式
在這樣的一個分層架構中,我們可以看到應用被分成了web層、業務層、數據層。在分層架構設計中,我們可以看到有一些不同的層級都可以抽象出一些共性的組件,比如:
- 日誌
- 安全
- 性能
- 審計
這些功能特性並不屬於某個特定的架構層級,而適用於所有的分層,因此從架構的角度來講,我們需要將這些功能特性以一種通用的方式去實現。這就是我們之前所說的面向切面編程,而過濾器和攔截器則是我們實現AOP最常見的手段。
API服務網關的必要性
當我們在討論微服務架構時,我們需要面對的是不同服務間的相互調用,那問題來了?究竟我們需要在架構中的哪個位置去實現這些共性的功能特性呢?
- 認證
- 日誌
- 審計
- 限流
這就體現了API服務網關的具體作用了。
API服務網關如何工作
在微服務架構中,所有內、外的服務請求都會通過API服務網關來路由,服務網關負責實現了認證、日誌、審計、限流等相關基礎功能,假設,如果你想限制某個客戶端請求某個服務的次數,那麼我們就可以通過API服務網關來進行相應的限流操作。Netflix Zuul是目前業界流行的API服務網關解決方案。
總結
與AOP類似,AOP處理關注的是獨立應用中的橫切關注點,而API服務網關處理的則是企業級應用中微服務架構中的一些公共特性。
https://dzone.com/articles/microservices-architectures-introduction-to-api-ga