一、介紹
使用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)架構(gòu)
六妈候、系統(tǒng)介紹
6.1 Consul管理
6.1.1 Consul備份查詢
備份查詢
每次同步配置后,會備份上一次ocelot配置挂滓,可以在此進(jìn)行配置回滾苦银。
6.1.2 Consul預(yù)覽
預(yù)覽
可以在這兒預(yù)覽線上配置
6.2 全局配置
全局配置
這里配置ocelot的全局配置內(nèi)容
6.3 項(xiàng)目
6.3.1 查詢項(xiàng)目
分頁查詢
更新項(xiàng)目
新增項(xiàng)目
對路由配置進(jìn)行分組,以項(xiàng)目為單位進(jìn)行管理
6.3.2 項(xiàng)目同步
路由預(yù)覽
對即將同步的路由進(jìn)行預(yù)覽赶站,初步判斷是否有錯誤幔虏。
6.3.3 新增或編輯路由
新增或編輯路由
6.3.4 同步路由
同步路由
通過調(diào)用consul相關(guān)接口,同步路由至指定的consul keyvalue配置中贝椿。