本文共 907 字,大约阅读时间需要 3 分钟。
我们知道在protobuf中定义了service UserServiceRpc后,经过protoc编译后,会生成两个类class UserServiceRpc 和 class UserServiceRpc_stub,UserServiceRpc 是继承于service基类,UserServiceRpc_stub是继承于UserServiceRpc 。UserServiceRpc是供给rpc服务发布者(生产者)使用,UserServiceRpc_stub是供给rpc服务的调用方使用。我们在service UserServiceRpc里定义的方法,都会在UserServiceRpc_stub中提供,但是我们打开源码后,发现所有的方法底层都是调用RpcChannel的CallMethod方法:
那么问题就出现了,在我们的CallMethod方法中主要是做rpc方法调用的数据序列化和网络发送,很容易就因为各种原因调用失败,那么当rpc调用失败,我们如何得知当前rpc调用的状态呢?RpcController* controller这个参数是不是能够到达我的要求呢?
转载地址:http://fgbhz.baihongyu.com/