From ef8cf0fc5f111a14ddaa72af182c2084b921dcff Mon Sep 17 00:00:00 2001 From: binghe001 <“1028386804@qq.com”> Date: Sun, 29 Sep 2024 22:49:23 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E9=AB=98=E6=80=A7=E8=83=BDPolaris?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E9=A1=B9=E7=9B=AE-=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B-=E7=AC=AC09=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/.vuepress/config.js | 1 + .../images/project/gateway/2024-09-29-001.png | Bin 0 -> 102993 bytes docs/md/all/all.md | 1 + docs/md/other/guide-to-reading.md | 1 + .../gateway/model/2024-09-29-chapter09.md | 63 ++++++++++++++++++ 6 files changed, 67 insertions(+) create mode 100644 docs/.vuepress/public/images/project/gateway/2024-09-29-001.png create mode 100644 docs/md/project/gateway/model/2024-09-29-chapter09.md diff --git a/README.md b/README.md index 68f1e50f..369c13ff 100644 --- a/README.md +++ b/README.md @@ -308,6 +308,7 @@ * [《高性能Polaris网关》通用模型-第06节:网关配置规则模型实现类设计](https://articles.zsxq.com/id_fnpiq7jtk9oj.html) * [《高性能Polaris网关》通用模型-第07节:服务定义与实例模型实现类设计](https://articles.zsxq.com/id_pj75f0kbekoi.html) * [《高性能Polaris网关》通用模型-第08节:服务配置缓存接口与实现类模型设计](https://articles.zsxq.com/id_c6amcv1qjks8.html) +* [《高性能Polaris网关》通用模型-第09节:网关上下文属性顶层接口设计](https://articles.zsxq.com/id_uagjqbe799kd.html) ### 💥 分布式IM即时通讯系统 diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 0f9f791f..eb8dfb88 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -1610,6 +1610,7 @@ function getBarGateway(){ "model/2024-09-24-chapter06.md", "model/2024-09-25-chapter07.md", "model/2024-09-28-chapter08.md", + "model/2024-09-29-chapter09.md", ] } ] diff --git a/docs/.vuepress/public/images/project/gateway/2024-09-29-001.png b/docs/.vuepress/public/images/project/gateway/2024-09-29-001.png new file mode 100644 index 0000000000000000000000000000000000000000..5d89009c3cc0fb1b3766ffbb09641f3c5554fe5c GIT binary patch literal 102993 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

2B~pFjo@hinJOLDy?uCvY71G>c_H9OGPN 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星球:[http://m6z.cn/6aeFbs](http://m6z.cn/6aeFbs) +
博客:[https://binghe.gitcode.host](https://binghe.gitcode.host) +
文章汇总:[https://binghe.gitcode.host/md/all/all.html](https://binghe.gitcode.host/md/all/all.html) +
源码获取地址:[https://t.zsxq.com/0dhvFs5oR](https://t.zsxq.com/0dhvFs5oR) + +> 沉淀,成长,突破,帮助他人,成就自我。 + +* 本章难度:★★☆☆☆ +* 本节重点:对高性能Polaris网关的上下文属性的顶层接口进行设计,从全局角度掌握高性能Polaris网关上下文属性顶层接口的设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。 + +**大家好,我是冰河~~** + +在网关的整体设计中,上下文可以说是网关的重要组成部分,通过上下文,可以获取到网关在处理请求和响应时的各种状态,也能够获取和透传各种数据。在设计网关的上下文中,为了更好的提升网关的可扩展性。在上下文的整体设计中,单独对上下文的属性进行了详细的设计。 + +## 一、前言 + +在前面的文章中,已经对高性能Polaris网关的请求与响应模型的顶层接口和实现进行了设计,对调用链路的顶层接口与抽象类模型进行了设计和实现,随后,又对网关服务的定义与实例模型和服务配置的缓存接口与实现类进行了设计。接下来,从网关上下文的角度,对网关上下文的顶层接口进行设计。 + +## 二、本节诉求 + +对高性能Polaris网关的上下文属性的顶层接口进行设计,从全局角度掌握高性能Polaris网关上下文属性顶层接口的设计。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。 + +## 三、类结构设计 + +为了在保证网关高性能的同时,进一步提升网关的可扩展性,对网关的上下文属性进行设计。上下文属性的顶层接口如图9-1所示。 + +

+ +
+
+ +在网关的属性接口设计上,主要设计了PolarisKey和AttributeKey两个接口,其中,PolarisKey是顶层接口,AttributeKey是PoalrisKey的子接口。两个接口中定义的方法含义如下所示。 + +**(1)PolarisKey接口** + +* cast()方法:将Object类型的对象转换成指定的泛型类型。 + +**(2)AttributeKey接口** + +* valueOf()方法:根据转入的名称返回AttributeKey对象。 +* create(final Class valueClass)方法:创建AttributeKey对象。 +* getHttpInvoker()方法:获取HttpInvoker对象。 +* getRpcInvoker()方法:获取RpcInvoker对象。 +* getWebSocketInvoker()方法:获取WebSocketInvoker对象。 +* getMatchInstances()方法:获取匹配到的所有服务实例列表。 +* getLoadInstance()方法:获取负载均衡后的服务实例。 +* getAttachment()方法:获取透传的参数。 + +## 四、编码实现 + +接下来,就对网关上下文属性顶层接口进行编码实现。 + +## 查看完整文章 + +加入[冰河技术](https://public.zsxq.com/groups/48848484411888.html)知识星球,解锁完整技术文章、小册、视频与完整代码 \ No newline at end of file