proto 文件以其标准的接口、灵活的扩展性得到广泛应用,特别是在进程之间经常通过它定义rpc接口,或者在内存和持久化文件之间定义数据序列化格式。 本文总结了一些使用过程中常见的错误和解决方法。
找不到rpc 方法
错误日志示例如下:
Fail to find method=proto.ssd.MonitorService/GetClusterStatistic
如果在rpc 客户端出现上面错误日志,需要排查:
- 原始proto文件中是否定义上面的MonitorService服务和GetClusterStatisti方法;
- client 总指定的RPC服务的IP和端口是否正确,端口或者IP错都可能出现上面的错误;
找不到定义的字段
错误现象如下:
"msg" field in proto.ssd.MonitorService/GetClusterStatisticResponse not defined
原因:
在proto文件中是否定义上面的MonitorService服务和GetClusterStatisticResponse中没用定义"msg"字段
字段值越界
错误现象如下:
'value' field in proto.ssd.MonitorService/GetClusterStatisticRequest exceed rangs
原因:proto.ssd.MonitorService/GetClusterStatisticRequest的request字段的值超过proto文件中该类型的允许取值范围。