# 《高性能Polaris网关》通用模型-第11节:网关上下文顶层抽象接口设计

作者:冰河
星球: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网关上下文顶层抽象接口的设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、类结构设计

网关上下文顶层抽象接口设计如图11-1所示。


可以看到,在网关上下文的顶层接口设计中,主要设计了两个顶层接口,一个是Context接口,一个是PolarisContext接口。其中,PolarisContext接口是Context接口的子接口,各接口的职责和提供的方法说明如下:

(1)Context接口

网关上下文的顶层核心接口,主要实现网关请求生命周期的状态与方法定义,提供的字段和方法如下所示。

  • RUNNING:请求正在运行中的状态。
  • WRITTEN: 处理完请求,需要写回响应标记的状态。
  • COMPLETED:响应数据成功的状态。
  • TERMINATED:请求与响应结束的状态。
  • running()方法:设置状态为运行中。
  • written()方法:设置状态为处理完请求,需要写回响应标记。
  • completed()方法:设置状态为响应数据成功的状态。
  • terminated()方法:设置状态为请求与响应结束。
  • isRunning()方法:判断状态是否为运行中。
  • isWritten()方法:判断状态是否为需要写回响应标记。
  • isCompleted()方法:判断状态是否为响应数据成功的状态。
  • isTerminated()方法:判断状态是否为请求与响应结束。
  • getServerReceiveRequestTime()方法:网关服务端接收请求的时间。
  • setServerReceiveRequestTime(l)方法:设置网关服务端接收请求时间。
  • getServerSendResponseTime()方法:获取网关服务端发送响应时间。
  • setServerSendResponseTime()方法:设置网关服务端发送响应时间。
  • getClientSendRequestTime()方法:获取网关客户端发送请求时间。
  • setClientSendRequestTime()方法:设置网关客户端发送请求时间。
  • getClientReceiveRequestTime()方法:获取网关客户端接收响应时间。
  • setClientReceiveRequestTime()方法:设置网关客户端接收响应时间。

(2)PolarisContext接口

PolarisContext接口继承Context接口,是网关上下文最核心的接口,提供的核心方法如下所示。

# 查看完整文章

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