SpringCloudGateway可视化动态网关管理后台,网关神器

前言

之前有做过类似的网关管理系统,后面看了若依框架后就试着迁移到这个框架上去。抛开这个框架代码上的一些不足不谈,这个框架确实可以给中小型开发带来不少便利性,个人其实更喜欢前端的设计,里面搞了很多可以复用的组件。

用过SpringCloudGateway的小伙伴大概都知道,它是一个网关服务,在微服务架构里面必不可少的一个组件。平时我们使用SpringCloudGateway就需要在配置文件手动去配置路由器、断言、过滤器。如下图所示:

这种基于文本的配置方式,优点是快捷方便,缺点却也很多:

  1. 配置人员经常记不住有哪些断言和过滤器,甚至记不住这种配置的语法,大多数得借助度娘去复制粘贴,反正我作为一个老程序员说实话我也不记得这些语法,也不想去记
  2. 特别容易出错,过滤器和断言名字是固定的,字符输入错误就会导致配置错误
  3. 不能实时生效,当新增或者修改或者想停用某个路由就必须手动去修改这个配置文件,然后重启网关服务。虽然可以配置在nacos实时刷新,但是nacos也是基于文本编辑的,还是存在第1和第2两个缺点
  4. 当配置很多的时候,这个配置文件就非常的庞大,维护起来就非常不方便,因为你很难清楚的知道你配置了多少个路由,又有哪些路由是有效的

可视化网关后台介绍

基于上面的几个缺点,基于若依框架我自己开发了一个动态网关管理后台,这样不管是开发人员还是测试人员甚至非技术人员都很容易上手配置网关,再也不用去记那些长长的断言、过滤器名字以及参数了,最爽的是配置是实时生效的,无需重启,所见所得,随时可以启用禁用路由。小而美一直是我崇尚的设计理念,可视化网关管理后台就是界面简单直接,绝不会多一些无用的功能,其主要的功能有以下几个:

  1. 组织架构管理,这个是框架集成的,主要是用户、菜单,角色一些通用功能
  2. 过滤器管理
  3. 断言管理
  4. 路由管理

没有了,没有了,就是这么简单,下面一个一个介绍这些功能的细节。

登录界面

首先是登录入口,界面是星空背景,非常的简洁清爽

首页数据展示

登录进去后的首页,列出当前配置的一些数据,比如已配置路由总数,内置的过滤器和断言的总数,已经配置的过滤器和路由数据,就当做是一个看板吧

然后就是基于若依框架的用户、菜单、角色基础管理功能


过滤器管理

过滤器管理,可以在这里预先输入SpringCloundGateway内置的或者是自定义的过滤器

可以编辑新增过滤器,主要是设置过滤器需要的一些运行参数。注意哈,这里的参数是动态的,那个绿色的按钮就可以无限的添加参数,这样就可以灵活的配置过滤器了。


断言管理

这个和过滤器一样,可以预先配置好需要的断言,比如内置的和自定义的,可以清晰的看到断言的名称,参数,使用方式,随时可修改,删除这些配置

动态参数类型

为了让配置体验更好,我这里直接把配置参数控件化了,不同的参数类型显示方式不一样,目前系统支持四种类型,分别是字符、数字、日期、布尔值,这四种基本都够用了。这个功能是为了后续在路由器配置的时候可以动态显示控件。比如是日期类型则会显示日期控件,数字类型则显示数字控件,就是尽可能减少手动输入。

路由管理

上面的过滤器、断言配置好以后,接着就可以真正的开始路由的配置了,下面这个就是路由配置界面。你可以新增、同步、导入、导出、编辑、复制、删除路由,同时可以实时的启用、禁用路由。

导入、导出

当你需要把测试环境路由发布到线上环境时候,导入导出功能就非常的方便。当然备份也是不错的。

复制

有些路由器配置比较复杂,如果我们不想重新再配置一遍,可以直接选择复制路由,然后再去修改具体的细节,这样就可以快速的配置路由。

禁用、启用

想临时停用路由功能,就可以直接选择状态小圆圈切换

同步

线上环境任何时候都需要带着敬畏之心去对待,所以所有修改都必须点击同步后路由才能生效,这样避免没有经过检查审核而发布了路由导致生产事故

配置好路由后,就可以给这个路由添加断言了

断言的配置可以直接通过下拉列表显示出来,你只需要选择你想要的断言,贴心的配置了中文,再也不需要记住断言的那些英文名字了。下拉框支持模糊搜索,如果下拉列表没有你想要的断言,则可以在上面介绍的断言管理模块里面配置好断言即可。

过滤器和断言是一样的功能,只是类型不一样

选择不同的过滤器,需要配置的参数也是不一样的,这个是完全动态化的,你无需记住需要配置那些参数,而是根据显示出来的参数名称填写你的参数即可

后记

以上就是笔者基于若依框架自研的一套可视化动态网关管理后台,对网关服务无侵入性,同时支持文本配置和后台配置。使用可视化的配置,可以提高我们网关配置的效率,减少出错率,实时生效。有了界面配置,网关的配置工作再也不是开发的专属了,简单培训后,可以交给运维,测试人员去管理,是不是很方便。

原文链接:,转发请注明来源!