RPC提供者服务整合Spring框架实现
- 1.概述
- 2.整合设计
-
- 2.1.设计分析
- 2.2.实现类关系设计
- 3.整合实现
-
- 3.1.WorkerServer启动
- 3.2.WorkerRpcServer启动
- 3.3.SpringServerMethodInvokerDiscovery类
- 3.4.扫描注册RPC提供者的ServerMethodInvoker对象
- 3.5.谁来执行扫描注册
- 3.6. 注册ServerMethodInvoker对象
- 4.总结
1.概述
通过前面的RPC框架源码系列的文章我们基本已经梳理了一个通用的RPC框架需要具备的核心功能。并通过源码进行这个设计实现流程的整体解析熟悉。本篇文章我们主要说的还是RPC框架如何与Spring框架进行整合。
Spring是Java Web领域中最流行且最被广泛使用的框架,如果RPC框架需要使用在真实生产场景中,最好是能够支持与Spring框架框架整合。
在dolphinscheduler的RPC框架设计中,RPC消费者端提供了单例工厂类可以快速通过创建RPC服务接口代理对象, 所以基本不需要与Spring框架进行过多的整合, 这里和Spring框架进行整合主要说的还是RPC提供者服务与Spring框架的整合实现。
2.整合设计
2.1.设计分析
当时我们在进行RPC提供者服务的设计实现时遗留了一块儿内容, 就是关于RPC提供者服务关于@RpcService注解和@RpcMethod注解的解析扫描实现及如何与Spring框架进行整合的内容。 今天我们主要讲的就是这部分内容。
大家来思考一下, 如果要你去设计,你觉得应该怎么设计呢?
1)首先被@RpcService注解的接口被定义成了RPC服务接口,被@RpcService注解的接口中被@RpcMethod注解的抽象方法就被定义成了RPC方法,需要进行远程调用。