一、介紹
使用Ocelot作為網(wǎng)關(guān)勋颖,在遇到配置的時(shí)候遇到一些麻煩。最初是使用ocelot.json勋锤,后來將配置寫到consul keyValue中饭玲,但隨著項(xiàng)目越來越多,發(fā)現(xiàn)配置越發(fā)不好管理叁执,于是就想到做一個可視化的配置中心茄厘。搜索其他人的解決方案,大多數(shù)是ocelot讀取數(shù)據(jù)庫配置谈宛,但實(shí)現(xiàn)成本較高次哈,且靈活度不夠。于是我想吆录,如果將配置寫到數(shù)據(jù)庫中窑滞,然后生成ocelot json,調(diào)用consul的編輯keyvalue的接口恢筝,不就可以把配置同步到ocelot中了嗎哀卫?說干就干。目前項(xiàng)目完成度已經(jīng)基本達(dá)到可用撬槽,還存在少量文案和配置模型參數(shù)未對應(yīng)上的問題此改,還在持續(xù)修復(fù)中。
二侄柔、項(xiàng)目地址
https://gitee.com/zhipeng2zaizai/ocelot-admin
三共啃、所用技術(shù)或中間件
- Furion框架
- SqlSugar
- ArcoDesignVue
- 使用 SignalR | .NET 的實(shí)時(shí) ASP.NET (microsoft.com)
- Ocelot
- Consul Documentation | Consul | HashiCorp Developer
四鼓寺、代碼結(jié)構(gòu)
ocelot-admin
├─ocelot-admin-api
│ ├─net6 基于net6的ocelot管理后臺接口
│ ├─Ocelot.Admin.Api.Application 接口、服務(wù)層
│ ├─Ocelot.Admin.Api.Core 公共的數(shù)據(jù)層
│ ├─Ocelot.Admin.Api.Web.Core 中間件層
│ ├─Ocelot.Admin.Api.Web.Entry 默認(rèn)啟動項(xiàng)
├─ocelot-admin-master 基于net6的ocelot服務(wù)
│
├─ocelot-admin-web 基于arco design vue的管理后臺頁面
│
└─documents
│ ├─mssql.sql sqlserver數(shù)據(jù)庫初始化腳本
五勋磕、系統(tǒng)架構(gòu)
六妈候、系統(tǒng)介紹
6.1 Consul管理
6.1.1 Consul備份查詢
每次同步配置后,會備份上一次ocelot配置挂滓,可以在此進(jìn)行配置回滾苦银。
6.1.2 Consul預(yù)覽
可以在這兒預(yù)覽線上配置
6.2 全局配置
這里配置ocelot的全局配置內(nèi)容
6.3 項(xiàng)目
6.3.1 查詢項(xiàng)目
對路由配置進(jìn)行分組,以項(xiàng)目為單位進(jìn)行管理
6.3.2 項(xiàng)目同步
對即將同步的路由進(jìn)行預(yù)覽赶站,初步判斷是否有錯誤幔虏。
6.3.3 新增或編輯路由
6.3.4 同步路由
通過調(diào)用consul相關(guān)接口,同步路由至指定的consul keyvalue配置中贝椿。