# 《高性能Polaris网关》通用模型-第06节:网关配置规则模型实现类设计

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本节重点:对高性能Polaris网关的配置规则模型实现类进行设计,从全局角度掌握高性能Polaris网关配置规则的设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

大家好,我是冰河~~

网关的规则是可配置的,也就是说,最终我们自己手写的网关规则是可通过配置中心进行配置和管理的,并且在配置中心修改对应的规则后,程序会立即生效。所以,需要对高性能Polaris网关的配置规则模型类进行设计,以便满足网关的可视化配置需求。

# 一、前言

在前面的章节中,已经对高性能Polaris网关的请求与响应模型的顶层接口进行了设计,对请求模型和响应模型的顶层接口进行了实现,对调用链路的顶层接口与抽象类进行了设计,并且对调用链路的顶层接口实现类进行了设计。接下来,我们就对网关配置模型的实现类进行设计。

# 二、本节诉求

对高性能Polaris网关的配置规则模型实现类进行设计,从全局角度掌握高性能Polaris网关配置规则的设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、规则模型类设计

网关配置规则模型实现类设计如图6-1所示。


可以看到,在设计网关的配置类时,我们将其抽象出FilterRule和Rule两个类。

  • FilterRule:网关过滤规则,主要是针对网关接口级别、实例级别、服务级别的过滤规则,提供两个核心字段,一个是id,一个是config。
    • id:过滤规则id,唯一标识过滤规则。
    • config:过滤规则配置项内容,json格式的具体配置内容。
  • Rule:Rule类是网关规则配置类,封装网关的核心配置规则,后续会将Rule类封装的数据配置到配置中心,主要包含如下核心字段:
    • id:规则配置id,唯一标识规则配置。
    • name: 规则的名称,自定义的名称。
    • protocol:规则的协议,例如:http、rpc、websocket等。
    • serviceId:后端服务的id。
    • prefix:请求的path前缀,例如/api/user/*
    • paths:接口的集合。
    • order:排序的规则,网关会根据order进行排序,按先后顺序执行规则。
    • filterRules:网关过滤规则列表。

# 四、编码实现

接下来,就对网关配置规则模型实现类进行编码实现。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码