本文介紹通道服務的錯誤格式定義和錯誤碼資訊。
通道服務在收到異常請求後,會返回protobuf格式錯誤以及HTTP狀態代碼。
格式定義
protobuf錯誤格式如下:
message Error {
required string code = 1;
optional string message = 2;
optional string tunnel_id = 3;
}錯誤碼
使用SDK時,只需要關心處理邏輯為“返回錯誤”的錯誤碼,其餘錯誤碼會被SDK自動處理或重試,建議直接按相應處理邏輯處理錯誤碼。
HTTP狀態代碼 | 錯誤碼 | 描述 | 處理邏輯 |
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服務內部錯誤。 | 退避重試。 |