# 《高性能Polaris网关》通用模型-第02节:请求模型的顶层接口实现类设计

作者:冰河
星球: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网关的请求与响应模型的顶层接口进行了设计,我们已经从整体上了解了高性能Poalris网关的请求与响应数据模型。并且在不影响网关性能的前提下,尽最大程度满足扩展性和灵活性,在数据模型设计上,采用了面向接口编程。接下来,就是对请求模型的顶层接口进行实现。

# 二、本节诉求

对高性能Polaris网关的顶层数据模型的请求模型接口实现类进行设计,从全局角度掌握高性能Polaris网关接收请求与转发请求的核心数据模型。重点掌握通用交互模型的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、实现类整体设计

请求模型的顶层接口实现类的类图如图2-1所示。


可以看到,在请求模型中,会分别对HttpPolarisRequest、RpcPolarisRequest和WebSocketPolarisRequest三个接口分别进行实现。并且在HttpPolarisRequest接口的实现类DefaultHttpPolarisRequest中,会根据实际需要定义比较多的字段来满足请求的需要。

# 四、编码实现

接下来,就对请求模型顶层接口实现类的设计进行编码实现。

(1)实现DefaultHttpPolarisRequest类

DefaultHttpPolarisRequest类是网关HTTP请求模型的默认实现类。

源码详见:polaris-context工程下的io.binghe.polaris.context.request.DefaultHttpPolarisRequest。

# 查看完整文章

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