Ocelot 框架是基於.NET 開發的 API 網關,API網關是系統內部服務暴露在外部的一個訪問入口,類似於代理服務器,就像一個公司的門衛承擔着尋址、限制進入、安全檢查、位置引導等工作,我們可以形象的用下圖來表示: 外部設備需要訪問內部系統服務時必須要通過我們的 PI Gateway,目的是為了隔離內部服務和外部訪問來做統一的認證授權,限流熔斷,請求聚合,負載均衡,日志記錄,監控預警等 通用功能,就像是我們系統的防火牆一樣,在任何外部請求訪問系統時都必須經過防火牆的驗證。
API網關方式的核心要點是,所有的客戶端和消費端都通過統一的網關接入微服務,在網關層處理所有的非業務功能,通常,網關也是提供基於 REST 風格 API 訪問,服務端通過 API-GW 注冊和管理服務。
Ocelot的目標是使用.NET運行微服務和面向服務架構,我們需要一個統一的入口進入我們的服務,提供監控、鑒權、負載均衡等機制,也可以通過編寫中間件的形式,來擴展Ocelot的功能,Ocelot是一堆特定順序的中間件。Ocelot框架內部集成了IdentityServer和Consul(服務注冊發現),還引入了Polly來處理進行故障處理。
如需進一步學習 Ocelot 網關框架,可參閱以下高質量博客:
.NET Core 微服務之基於 Ocelot 實現 API 網關服務(上)
.NET Core 微服務之基於 Ocelot 實現 API 網關服務(下)
.NET Core 2.0 Ocelot API 網關教程(1)-入門
.NET Core 2.0 Ocelot API 網關教程(2)-路由
.NET Core 2.0 Ocelot API 網關教程(3)-路由聚合
.NET Core 2.0 Ocelot API 網關教程(4)-服務發現
.NET Core 2.0 Ocelot API 網關教程(5)-認證和授權