一、介绍
使用Ocelot作为网关,在遇到配置的时候遇到一些麻烦。最初是使用ocelot.json,后来将配置写到consul keyValue中,但随着项目越来越多,发现配置越发不好管理,于是就想到做一个可视化的配置中心。搜索其他人的解决方案,大多数是ocelot读取数据库配置,但实现成本较高,且灵活度不够。于是我想,如果将配置写到数据库中,然后生成ocelot json,调用consul的编辑keyvalue的接口,不就可以把配置同步到ocelot中了吗?说干就干。目前项目完成度已经基本达到可用,还存在少量文案和配置模型参数未对应上的问题,还在持续修复中。
二、项目地址
https://gitee.com/zhipeng2zaizai/ocelot-admin
三、所用技术或中间件
- Furion框架
- SqlSugar
- ArcoDesignVue
- 使用 SignalR | .NET 的实时 ASP.NET (microsoft.com)
- Ocelot
- Consul Documentation | Consul | HashiCorp Developer
四、代码结构
ocelot-admin
├─ocelot-admin-api
│ ├─net6 基于net6的ocelot管理后台接口
│ ├─Ocelot.Admin.Api.Application 接口、服务层
│ ├─Ocelot.Admin.Api.Core 公共的数据层
│ ├─Ocelot.Admin.Api.Web.Core 中间件层
│ ├─Ocelot.Admin.Api.Web.Entry 默认启动项
├─ocelot-admin-master 基于net6的ocelot服务
│
├─ocelot-admin-web 基于arco design vue的管理后台页面
│
└─documents
│ ├─mssql.sql sqlserver数据库初始化脚本
五、系统架构
系统架构六、系统介绍
6.1 Consul管理
6.1.1 Consul备份查询
备份查询每次同步配置后,会备份上一次ocelot配置,可以在此进行配置回滚。
6.1.2 Consul预览
预览可以在这儿预览线上配置
6.2 全局配置
全局配置这里配置ocelot的全局配置内容
6.3 项目
6.3.1 查询项目
分页查询更新项目
新增项目
对路由配置进行分组,以项目为单位进行管理
6.3.2 项目同步
路由预览对即将同步的路由进行预览,初步判断是否有错误。
6.3.3 新增或编辑路由
新增或编辑路由6.3.4 同步路由
同步路由通过调用consul相关接口,同步路由至指定的consul keyvalue配置中。
网友评论