# 《高性能Polaris网关》通用过滤器-第04节:网关通用抽象过滤器链的设计与实现

作者:冰河
星球: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构建请求与响应信息的核心流程和代码设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、核心类设计

本节,对网关的通用抽象过滤器链进行设计和封装实现,整体类图如图4-1所示。


可以看到,整体实现的类结构图还是比较简单的,本节,在上一节的基础上新增了AbstractFilterChain抽象类和DefaultFilterChain类。AbstractFilterChain抽象类就是网关提供的顶级抽象过滤器链类,DefaultFilterChain类是网关提供的默认过滤器链实现类。

# 四、编码实现

# 查看完整文章

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