RPC实战与核心原理之如何在没有接口的情况下进行RPC调用

如何在没有接口的情况下进行RPC调用

回顾

RPC 如何通过动态分组来实现秒级扩缩容,其关键点就是“动态”与“隔离”

RPC调用

RPC 调用,本质上就是调用端向服务端发送一条请求消息,服务端接收并处理,之后向调用端发送一条响应消息,调用端处理完响应消息之后,一次 RPC 调用就完成了

泛化调用

可以定义一个统一的接口(GenericService),调用端在创建 GenericService 代理时指定真正需要调用的接口的接口名以及分组名,而 GenericService 接口的 $invoke 方法的入参就是方法名以及参数信息。

传递给服务端所需要的所有信息,包括接口名、业务分组名、方法名以及参数信息等都可以通过调用 GenericService 代理的 $invoke 方法来传递。具体的接口定义如下:

class GenericService {

Object $invoke(String methodName, String[] paramTypes, Object[] params);

}

  • 这个通过统一的 GenericService 接口类生成的动态代理,来实现在没有接口的情况下进行 RPC 调用的功能,我们就称之为泛化调用。
posted @ 2022-02-13 19:14  牛犁heart  阅读(212)  评论(0编辑  收藏  举报