RPC 服务端要做的事有以下几点:
- 第一点:接收(反序列化 / 解码)客户端的请求消息并获取客户端请求的方法名、参数类型、具体参数,然后通过反射调用客户端请求的方法
- 第二点:将方法的执行结果封装进 RpcResponse 发送给客户端
- 第三点:定义一个注解,用户可使用该注解暴露服务(仿 Dubbo)
1. 设计传输/通信协议
通过设计传输/通信协议,我们定义需要传输哪些类型的数据, 并且还会规定每一种类型的数据应该占多少字节。这样我们在接收到二级制数据之后,就可以正确的解析出我们需要的数据。
以下便是我们设计的简单的传输协议(编解码器会用到):消息头(存储该消息长度) + 消息体
- 🔸 编码器在对即将发送的消息进行编码的时候,计算出消息体的字节数(长度)存储在消息头中,与消息体一并发送出去 !!!
- 🔸 解码器对接收的消息在进行解