
rpc
Mosiclone
这个作者很懒,什么都没留下…
展开
-
thrift .field 赋值无效
后面发现是他直接使用 object.filed 进行赋值,由于我这边将属性设置的 optional 可选字段,导致他赋值无效。这里是因为 thrift 里面有个 isSet 的方法,如果直接通过属性进行赋值 isSet 方法为 false,因此在 rpc 调用的时候并没有把对应的属性序列化并传出,所以返回值一直为默认值。如果是 required 必填字段,可以直接用对属性进行赋值。之前使用 thrift 的时候,给同事提供了接口,但是他调用我这边也返回值一直错误,我这边日志也显示入参为默认值。原创 2022-11-30 23:44:57 · 428 阅读 · 0 评论 -
【RPC项目】3.增加注册中心
增加注册中心工作内容主要是服务注册、服务发现、服务下线,负载均衡。并且将服务端提供的服务用 ZkServiceProviderImpl 保存。 注册中心使用 ZooKeeper 实现,使用 Curator 框架对 ZooKeeper 进行调用。 服务注册包括注册服务的方法,将服务写到 ZooKeeper 中。 服务发现包括发现服务的方法,通过负载均衡选择服务地址。 服务下线包括删除所有服务端的服务。 负载均衡这里只实现了最简单的随机分配。 ZkServiceProviderImpl 需要使用单例模式,增加原创 2022-02-22 01:03:02 · 2296 阅读 · 0 评论 -
【RPC项目】2.项目标准化
上一篇文章中的项目比较乱,并且只能对一个类中的方法进行远程调用,如果需要对其他类中的方法进行远程调用还需要进行修改,这一节把远程调用一些关键的信息提取出来,通过 RpcRequest 和 RpcResponse 来传输关键信息。 网络传输这里也为了之后升级为 netty 增加了 RpcRequestTransport 接口,现在先实现 Socket 传输的方法。 其他就是优化了 RpcClientProxy 客户端动态代理,因为将网络传输独立处理,之前的 Proxy 类需要进行修改。还优化了 Server原创 2022-02-20 21:13:47 · 2112 阅读 · 0 评论 -
【RPC项目】1.从不代理到动态代理
先放一些公共类: ServiceImpl ```java package common.ServiceImpl; import common.Hello; import common.HelloService; import lombok.extern.slf4j.Slf4j; @Slf4j public class HelloServiceImpl implements HelloService { @Override public String hello(Hello hello) { .原创 2022-02-17 22:06:15 · 485 阅读 · 0 评论