前言

October 13, 2023 · View on GitHub

English

前言

tRPC 框架定义了统一的接口调用返回码,并做了分类。

  • 区分服务端和客户端的错误码。
  • 区分一问一答调用和流式调用的错误码。
  • 错误码细分为网络相关、协议相关、数据操作相关等不同类别。

错误码定义

一问一答调用错误码

服务端错误码

错误码含义
TRPC_INVOKE_SUCCESS = 0调用成功
TRPC_SERVER_DECODE_ERR = 1服务端解码错误
TRPC_SERVER_ENCODE_ERR = 2服务端编码错误
TRPC_SERVER_NOSERVICE_ERR = 11服务端没有相应的服务实现
TRPC_SERVER_NOFUNC_ERR = 12服务端没有相应的接口实现
TRPC_SERVER_TIMEOUT_ERR = 21请求在服务端超时
TRPC_SERVER_OVERLOAD_ERR = 22请求在服务端被过载保护而丢弃请求(主要用在框架内部实现的过载保护插件上)
TRPC_SERVER_LIMITED_ERR = 23请求在服务端被限流(主要用在外部服务治理系统的插件或者业务自定义的限流插件上)
TRPC_SERVER_FULL_LINK_TIMEOUT_ERR = 24请求在服务端因全链路超时时间而超时
TRPC_SERVER_SYSTEM_ERR = 31服务端系统错误
TRPC_SERVER_AUTH_ERR = 41服务端鉴权失败错误
TRPC_SERVER_VALIDATE_ERR = 51服务端请求参数自动校验失败错误

客户端错误码

错误码含义
TRPC_CLIENT_INVOKE_TIMEOUT_ERR = 101客户端调用超时
TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR = 102请求在客户端因全链路超时时间而超时
TRPC_CLIENT_CONNECT_ERR = 111客户端连接错误
TRPC_CLIENT_ENCODE_ERR = 121客户端编码错误
TRPC_CLIENT_DECODE_ERR = 122客户端解码错误
TRPC_CLIENT_LIMITED_ERR = 123请求在客户端被限流(主要用在外部服务治理系统的插件或者业务自定义的限流插件上)
TRPC_CLIENT_OVERLOAD_ERR = 124请求在客户端被过载保护而丢弃请求(主要用在框架内部实现的过载保护插件上)
TRPC_CLIENT_ROUTER_ERR = 131客户端选 IP 路由错误
TRPC_CLIENT_NETWORK_ERR = 141客户端网络错误
TRPC_CLIENT_VALIDATE_ERR = 151客户端响应参数校验失败错误
TRPC_CLIENT_CANCELED_ERR = 161上游主动断开连接,提前取消请求错误

如下错误发生时,请求包未发送到服务端。

  • TRPC_CLIENT_CONNECT_ERR
  • TRPC_CLIENT_ENCODE_ERR
  • TRPC_CLIENT_LIMITED_ERR
  • TRPC_CLIENT_OVERLOAD_ERR
  • TRPC_CLIENT_ROUTER_ERR

如下错误发生时,不确定请求包是否发送到服务端。

  • TRPC_CLIENT_INVOKE_TIMEOUT_ERR
  • TRPC_CLIENT_FULL_LINK_TIMEOUT_ERR
  • TRPC_CLIENT_NETWORK_ERR

如下错误时,表示服务端的回包格式有误。

  • TRPC_CLIENT_DECODE_ERR

如下错误码目前未使用到。

  • TRPC_CLIENT_VALIDATE_ERR
  • TRPC_CLIENT_CANCELED_ERR

未定义错误

TRPC_INVOKE_UNKNOWN_ERR = 999

流式调用错误码

服务端流错误码

错误码含义
TRPC_STREAM_SERVER_NETWORK_ERR = 201服务端流式网络错误
TRPC_STREAM_SERVER_MSG_EXCEED_LIMIT_ERR = 211服务端流式传输错误。比如,流式消息过长。
TRPC_STREAM_SERVER_ENCODE_ERR = 221服务端流式编码错误
TRPC_STREAM_SERVER_DECODE_ERR = 222服务端流式解码错误
TRPC_STREAM_SERVER_WRITE_END = 231服务端流式写流结束
TRPC_STREAM_SERVER_WRITE_OVERFLOW_ERR = 232服务端流式写溢出错误
TRPC_STREAM_SERVER_WRITE_CLOSE_ERR = 233服务端流式写关闭错误
TRPC_STREAM_SERVER_WRITE_TIMEOUT_ERR = 234服务端流式写超时错误
TRPC_STREAM_SERVER_READ_END = 251服务端流式读结束
TRPC_STREAM_SERVER_READ_CLOSE_ERR = 252服务端流式读关闭错误
TRPC_STREAM_SERVER_READ_EMPTY_ERR = 253服务端流式读空错误
TRPC_STREAM_SERVER_READ_TIMEOUT_ERR = 254服务端流式读超时错误

客户端流错误码

错误码含义
TRPC_STREAM_CLIENT_NETWORK_ERR = 301客户端流式网络错误
TRPC_STREAM_CLIENT_MSG_EXCEED_LIMIT_ERR = 311客户端流式传输错误。比如,流式消息过长。
TRPC_STREAM_CLIENT_ENCODE_ERR = 321客户端流式编码错误
TRPC_STREAM_CLIENT_DECODE_ERR = 322客户端流式解码错误
TRPC_STREAM_CLIENT_WRITE_END = 331客户端流式写流结束
TRPC_STREAM_CLIENT_WRITE_OVERFLOW_ERR = 332客户端流式写溢出错误
TRPC_STREAM_CLIENT_WRITE_CLOSE_ERR = 333客户端流式写关闭错误
TRPC_STREAM_CLIENT_WRITE_TIMEOUT_ERR = 334客户端流式写超时错误
TRPC_STREAM_CLIENT_READ_END = 351客户端流式读结束
TRPC_STREAM_CLIENT_READ_CLOSE_ERR = 352客户端流式读关闭错误
TRPC_STREAM_CLIENT_READ_EMPTY_ERR = 353客户端流式读空错误
TRPC_STREAM_CLIENT_READ_TIMEOUT_ERR = 354客户端流式读超时错误

未定义错误

TRPC_STREAM_UNKNOWN_ERR = 1000