# 《高性能Polaris网关》客户端SDK-第04节:网关客户端RPC协议SDK的设计和实现

作者:冰河
星球: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)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★★☆☆
  • 本节重点:对网关客户端RPC协议的SDK进行设计和实现,深入理解其他服务对接高性能Polaris网关SDK的设计与实现。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

设计并实现网关的核心主体功能后,就需要思考其他服务如何快速高效的对接网关,让网关能够正确将请求路由到对应的服务。在网关的核心设计中,如果其他服务要想对接网关,可以通过网关的SDK将自身服务注册到注册中心,网关从注册中心发现注册的服务后,可以将请求路由到对应的服务。同时,网关的SDK会提供对应的注解,其他服务在自己的类和接口上添加对应的注解后,网关就可以正确识别这些信息,将请求正确路由到接口的同时,也能够执行一定的策略。

在客户端SDK篇章中,已经对网关客户端SDK的注解与协议进行了设计和定义。接下来,就需要思考如何将定义的SDK注解和协议应用到整体SDK的实现中。同时,已经对网关客户端扫描器与抽象注册中心实现类和HTTP客户端SDK进行了设计和实现。

# 一、背景

截止到目前,我们已经完成了网关核心主体功能的设计和开发,包含:通用模型的设计与实现、通用过滤器的设计与实现、通用处理器的设计与实现、核心容器的设计与实现、启动流程的设计与实现、注册中心的设计与实现、负载均衡的设计与实现、增强型负载均衡的设计与实现、配置中心的设计与实现和网关热插拔插件的设计与实现等。

在客户端SDK篇章前面的文章中,已经对网关客户端SDK的注解与协议进行了设计和定义。接下来,就需要思考如何将定义的SDK注解和协议应用到整体SDK的实现中。同时,已经对网关客户端扫描器与抽象注册中心实现类和HTTP客户端SDK进行了设计和实现。

# 二、本节重点

对网关客户端RPC协议的SDK进行设计和实现,深入理解其他服务对接高性能Polaris网关SDK的设计与实现。重点掌握整体调用链路的设计思路和设计方法,并能够将其灵活应用到自身实际项目中。

# 三、核心类设计

网关客户端RPC协议SDK的类图如图4-1所示。


可以看到网关客户端HTTP协议SDK主要由RpcClientRegistryService类和RpcClientAutoConfiguration类实现。

注意:本节只给大家展示网关SDK的核心逻辑,其他代码的实现细节,大家可以自行到本节对应的源码分支进行查看,这里不再赘述。

# 四、编码实现

本节,就对网关客户端RPC协议的SDK进行编码实现,其他代码的实现细节,大家可以自行到本节对应的源码分支进行查看,这里不再赘述。

(1)实现RpcClientRegistryService类

RpcClientRegistryService类是实现RPC客户端服务注册的核心类。

源码详见:polaris-client-rpc工程下的io.binghe.polaris.client.rpc.register.RpcClientRegistryService。

# 查看完整文章

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