接下来如何实现
第一步:先把服务类,调用方法转换成数字,方便传输
第二步:提取元信息,提取又有三种方式,三种各有优点,最优方式是第一种
1. 编译 java 时处理
2. 程序启动时处理,预处理
3. 调用时处理,懒处理
第三步:编码解释
第四步:请求方式
第五步:分布式支持
第一步:
- @Target(ElementType.TYPE)
- @Retention(RetentionPolicy.RUNTIME)
- public @interface QModel {
- short value();
- }
- @Target(ElementType.METHOD)
- @Retention(RetentionPolicy.RUNTIME)
- public @interface QCommond {
- byte value();
- }
- @Target({
- ElementType.PARAMETER
- })@Retention(RetentionPolicy.RUNTIME) public@interface QRpcParam {
- boolean required()
- default true;
- }
1.QModel 是转换成模块编号即是公开服务类,前面介绍过先确认数值范围再定类型。short 范围 - 32768 至 32767 一个中大型项目也就是三四十模块,以所 short 范围足够了
2.QCommond 是服务类调用方法编号, byte 类型
3.QRpcParam 是绑定在参数上,因为 java 反射是获取不到接口参数方法名,只能获取到实现类上的参数名,java8 还没支持,required 参数是否必须有
来源: http://www.bubuko.com/infodetail-2004321.html