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

作者:冰河
星球: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网关响应请求的核心数据模型。重点掌握通用交互模型的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、实现类整体设计

响应模型的顶层接口实现类的类图如图3-1所示。


可以看到,虽然高性能Polaris网关有多种请求模型,支持HTTP请求模型、RPC请求模型和WebSocket请求模型,但是对响应模型来说,都可以封装成统一的数据模型来响应客户端的请求。所以,无论客户端以何种请求模型来访问网关,最终,网关都可以将整体的数据模型封装成PolarisResponseData对象来响应客户端的请求。

# 四、编码实现

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

高性能Polaris网关的响应模型顶层接口实现比较简单,在polaris-context工程下创建PolarisResponse接口的实现类DefaultPolarisResponse。

源码详见:io.binghe.polaris.context.response.DefaultPolarisResponse。

# 查看完整文章

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