前言:
最近在關注微服務,在 eShop On Containers 專案中存在一個API網關專案,引起想深入了解下它的興趣,

一、API網關是什么
API網關是微服務架構中的唯一入口,它提供一個單獨且統一的API入口用于訪問內部一個或多個API,它可以具有身份驗證,監控,負載均衡,快取,請求分片與管理,靜態回應處理等,API網關方式的核心要點是,所有的客戶端和消費端都通過統一的網關接入微服務,在網關層處理所有的非業務功能,通常,網關也是提供REST/HTTP的訪問API,服務端通過API-GW注冊和管理服務,
二、Ocelot簡介
Ocelot 是一個用.NET Core實作并且開源的API網關,它功能強大,包括了:路由、請求聚合、服務發現、認證、鑒權、限流熔斷、并內置了負載均衡器與Service Fabric、Butterfly Tracing集成,這些功能只都只需要簡單的配置即可完成
三、Ocelot作業流程
a) 基本集成:
根據configuration.json(后續文章會介紹詳細內容)中配置內容,把接收所有的客戶端請求,路由到對應的下游服務器進行處理,再將請求結果回傳,而這個上下游請求的對應關系也被稱之為路由,

b) 集成IdentityServer:
當我們涉及到授權認證的時候,我們可以跟Identity Server進行結合,當網關需要請求認證資訊的時候會與Identity Server服務器進行互動來完成,

c) 網關集群配置:
可以部署多臺Ocelot網關,當然這個時候在多臺網關前,你還需要一臺負載均衡器

d) 結合Consul服務發現
在Ocelot已經支持簡單的負載功能,當下游服務存在多個結點的時候,Ocelot能夠承擔起負載均衡的作用,但是沒提供健康檢查,服務的注冊也只能通過手動在組態檔里面添加完成,這不夠靈活并且在一定程度下會有風險,這個時候我們就可以用Consul來做服務發現,它能與Ocelot完美結合,

e) 結合Service Fabric

下一步:
接下來我們就一起來應用Ocelot實作路由、權限認證、服務發現、負載均衡等等相關功能,在代碼中進一步深入了解,
-
- 包括如何配置路由
- 授權認證服務接入
- 負載均衡使用
- 服務發現結合
- ……
參考:
官方檔案:https://ocelot.readthedocs.io/en/latest/introduction/bigpicture.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3529.html
標籤:.NET Core
