rpc调用必须有客户端和服务端,客户端知道服务端有什么样的方法但没有具体的方法实现(定义接口),服务端时刻监听指定端口执行方法返回执行结果。
客户端现在有两个亟待解决的问题:
- 有很多接口如何动态去确定调用哪一个方法?
- 如何制定协议?
首先,我们可以用动态代理的方式实现动态加载。
比如说现在有两个接口HelloService和GoodByeService,客户端具体调用某个接口的时候只需要将被代理对象传入,拿到它的代理对象,每次调用方法的
时候在invoke进行transfer传输到server端,server返回执行结果。
其次
协议中request body中必须包含interfaceName,methodName,paramName,paramType等信息,服务端收到请求后解析参数后通过反射调用指定方法并响应执行结果。