代码拉取完成,页面将自动刷新
同步操作将从 Ticsmyc/T_RPC_Framework 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
一个rpc远程过程调用的框架。
见项目 : T_RPC_Framework_Demo
步骤(基于3.7版本):
引入依赖
<dependency>
<groupId>fun.ticsmyc.rpc</groupId>
<artifactId>t-rpc-all</artifactId>
<version>3.7</version>
</dependency>
在resources目录下,放入trpc.properties 配置文件 (可选)
port=8999 # 作为服务提供方,使用的端口号 (默认是8888)
loadbalancer=round # 作为服务消费方,使用的负载均衡机制,可选random(随机)和round(轮询),默认是随机
serializer=json # 作为服务消费方,发送rpc请求时使用的负载均衡器,可选kryo(默认)、json、protobuf、hessian
networkIO=netty #可用netty和socket 。 亲测netty更快
在配置类声明
@EnableTRPC
提供服务:
在想要提供的服务接口上声明
@TRPCInterface //这一步是为了解决某个实现类实现了多个接口的情况
在想要提供的服务实现类上声明
@TRPCService(group="t") // group属性是为了处理一个接口想要注册多个实现类的情况消费服务
消费服务:
通过@RpcClient注解即可注入rpc服务
@RpcClient(group = "t")
private HelloService helloService;
└─src
└─main
├─java
│ └─fun
│ └─ticsmyc
│ └─rpc
│ ├─client :客户端
│ │ ├─proxy :动态代理
│ │ └─transport :网络传输层
│ │ ├─bio :基于socket实现的传输
│ │ └─netty :基于netty实现的传输
│ │ ├─codec :编码、解码器
│ │ └─handler :自定义的处理器
│ ├─common :通用
│ │ ├─entity :网络通信使用的实体类
│ │ ├─enumeration :枚举类
│ │ ├─exception :异常类
│ │ ├─factory :工厂
│ │ └─serializer :序列化器
│ │ └─impl
│ ├─nacos
│ │ ├─loadbalance 负载均衡
│ │ │ └─impl
│ │ └─registry 注册中心
│ │ └─impl
│ ├─server :服务端
│ │ ├─handler :业务:根据收到的信息调用相应服务
│ │ ├─registry :服务注册:供服务端使用
│ │ │ └─impl
│ │ └─transport :网络传输层
│ │ ├─bio
│ │ └─netty
│ │ ├─codec
│ │ └─handler
│ └─test :用于开发时测试
│ ├─bio
│ ├─netty
│ └─service
│ └─impl
└─resources
重新定义协议
0xCAFEBABE
修改序列化器为懒汉单例、增加序列化器编号。解码器使用的序列化器改为由收到的数据包指定
增加协议版本号、魔数
增加一些错误类型、枚举类型
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。