编写 Netty / RPC 服务端【框架代码分析】

本文详细介绍了如何构建一个基于 Netty 的 RPC 服务端,包括设计传输/通信协议,编解码器的工作原理,定义服务暴露的注解,以及 Netty 服务端的主要功能。重点讨论了编解码器的编码器和解码器实现,以及如何处理 RPC 请求。同时,还探讨了服务暴露注解的使用和版本控制,以及如何通过 Spring 集成和初始化服务端。
摘要由CSDN通过智能技术生成

RPC 服务端要做的事有以下几点:

  • 第一点:接收(反序列化 / 解码)客户端的请求消息并获取客户端请求的方法名、参数类型、具体参数,然后通过反射调用客户端请求的方法
  • 第二点:将方法的执行结果封装进 RpcResponse 发送给客户端
  • 第三点:定义一个注解,用户可使用该注解暴露服务(仿 Dubbo)

1. 设计传输/通信协议

通过设计传输/通信协议,我们定义需要传输哪些类型的数据, 并且还会规定每一种类型的数据应该占多少字节。这样我们在接收到二级制数据之后,就可以正确的解析出我们需要的数据。

以下便是我们设计的简单的传输协议(编解码器会用到):消息头(存储该消息长度) + 消息体

  • 🔸 编码器在对即将发送的消息进行编码的时候,计算出消息体的字节数(长度)存储在消息头中,与消息体一并发送出去 !!!
  • 🔸 解码器对接收的消息在进行解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天小牛肉

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值