本文主要为您介绍通道服务的错误处理。

格式定义

TunnelService在收到异常用户请求后,会返回protobuf格式错误以及HTTP状态码。protobuf错误格式:

message Error {
    required string code = 1;
    optional string message = 2;
    optional string tunnel_id = 3;
}

错误码

使用SDK的用户通常只需要关心处理逻辑为“返回错误”的错误码,其余错误码会被SDK自动处理或重试,直接使用tunnel API的用户建议按处理逻辑建议处理错误码。

HTTP状态码 Table Store错误码 描述 处理逻辑
400 OTSParameterInvalid API请求参数错误或数据表不存在 返回错误
400 OTSTunnelExpired 增量tunnel或全量加增量tunnel日志过期 返回错误
403 OTSPermissionDenied 无指定资源的访问权限 返回错误
409 OTSTunnelExist 待创建的tunnel已经在服务端存在 返回错误
400 OTSSequenceNumberNotMatch checkpoint序列号不匹配,通常是序列号滞后或者channel消费有竞争 通过checkpoint API重新获取checkpoint和序列号
410 OTSResourceGone tunnel client心跳超时 使用tunnelID重新连接tunnel service
503 OTSTunnelServerUnavailable tunnel服务内部错误 退避重试