RPC调用的返回结果
- 成功
- 失败
- 超时
超时情况是不确定的,需要调用方重试或查询等,根据业务情况进行处理
返回结果表示方法
- 使用http协议的状态码
- 使用业务错误码(在业务处理中比较常见)
- 0表示成功
- 1表示失败
- 其他错误码代表具体的失败业务场景
失败错误码类型
- 业务错误(参数错误,或业务场景校验限制,请求已经处理完成)
- 处理速度慢(msg:”请求处理中”)
- 限流(msg:”你的操作太快了”)
- 未知错误
- 其他
针对2或4的场景,很可能提交的RPC实际上已经成功,属于不确定的情况(同超时),业务方不能直接当成失败处理;1的场景中“请求已经处理完成”,实际上已经成功,只是调用方的接口返回不幂等。
错误码处理
定义RPC请求中,成功,失败,不确定三种结果对应的错误码集合(最好可配置),业务针对不同的结果进行相应处理。
- 成功(错误码:A,B,C ….)
- 失败(错误码:E,F,G ….)
- 不确定(错误码:H,I,J …. 和 ”超时“)