RPC创建自定义协议

上一次课中,我们初步了解到Netty 中内置的HTTP 协议,需要HTTP 的编、解码器来完成解析。今天,我们来看自定义协议如何设定?

在Netty 中要完成一个自定义协议,其实非常简单,只需要定义一个普通的Java 类即可。我们现在手写RPC 主要是完成对Java 代码的远程调用(类似于RMI,大家应该都很熟悉了吧),远程调用Java 代码哪些内容是必须由网络来传输的呢?譬如,服务名称?需要调用该服务的哪个方法?方法的实参是什么?这些信息都需要通过客户端传送到服务端去。

下面我们来看具体的代码实现,定义InvokerProtocol 类:

import lombok.Data;
import java.io.Serializable;
/**
* 自定义传输协议
*/
@Data
public class InvokerProtocol implements Serializable {
	private String className;//类名
	private String methodName;//函数名称
	private Class<?>[] parames;//参数类型
	private Object[] values;//参数列表
}

从上面的代码看出来,协议中主要包含的信息有类名、函数名、形参列表和实参列表,通过这些信息就可以定位到一个具体的业务逻辑实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值