如何处理RPC返回的错误码?

RPC调用的返回结果

  1. 成功
  2. 失败
  3. 超时

超时情况是不确定的,需要调用方重试或查询等,根据业务情况进行处理

返回结果表示方法

  1. 使用http协议的状态码
  2. 使用业务错误码(在业务处理中比较常见)
    • 0表示成功
    • 1表示失败
    • 其他错误码代表具体的失败业务场景

失败错误码类型

  1. 业务错误(参数错误,或业务场景校验限制,请求已经处理完成)
  2. 处理速度慢(msg:”请求处理中”)
  3. 限流(msg:”你的操作太快了”)
  4. 未知错误
  5. 其他

针对2或4的场景,很可能提交的RPC实际上已经成功,属于不确定的情况(同超时),业务方不能直接当成失败处理;1的场景中“请求已经处理完成”,实际上已经成功,只是调用方的接口返回不幂等。

错误码处理

定义RPC请求中,成功,失败,不确定三种结果对应的错误码集合(最好可配置),业务针对不同的结果进行相应处理。

  1. 成功(错误码:A,B,C ….)
  2. 失败(错误码:E,F,G ….)
  3. 不确定(错误码:H,I,J …. 和 ”超时“)