# 《高性能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)知识星球,解锁完整技术文章、小册、视频与完整代码