全部产品
阿里云办公

错误代码

更新时间:2017-11-15 19:09:40

消费端通过CSB调用服务时,整个链路上可以分成三个阶段:

  1. 服务消费端应用以消费端协议访问CSB
  2. CSB处理转发服务调用请求
  3. CSB以提供端协议访问服务提供端应用

这三个部分都可能出错,服务消费端收到错误信息时要能区别是在哪个阶段发生了什么错误,需要考虑如何通过消费端协议定义的错误信息结构来体现。消费端协议定义的错误信息结构多种多样,也可能有各种限制,但是通常都至少会提供错误码和错误描述,而且错误码应该都有保留或者未占用的、代表“其它错误”的编码(下称:逃逸代码 Escape Code)。基于这个前提,可以定义如下约定:

阶段1发生的错误不用做任何处理。

阶段2及之后发生的错误,约定使用消费端协议的某个Escape Code,具体CSB错误码和描述以固定格式体现在消费端错误描述内,如[CSB Error Code] CSB Error Message

阶段3发生的错误,同上处理,但是CSB Error Code也提供Escape Code表示这是一个阶段3错误,且CSB Error Message的格式定义为[提供端协议错误码] 提供端协议错误信息。这里要注意的是,CSB需要了解提供端协议的错误码中哪些表示正常访问,以免将成功的访问当做错误处理。

基于上述约定,我们对错误码的定义如下。

CSB 错误码列表

其中800为 CSB Escape Code

错误代码 错误描述信息 说明
200 SUCCESS 请求处理成功
500 platform error 平台处理错误
501 access permission deny 没有权限访问
502 signature verification failed 验签失败
503 service not registed 服务没有注册
504 api name not found 该服务没有找到
505 access key not found Access Key 没有在参数里找到
506 signature not found 签名没有在参数里面找到
507 required parameter is missing 参数丢失
508 need to access security channel 需要能访问安全通道
509 timestamp not found 时间戳在参数里面没有找到
510 time expired 访问过期
511 invoke timeout 调用 HSF 服务超时
512 write channel error 转发 HSF 协议时,连接通道出错
513 connection has broken 连接已经断开
514 hsf address not found 调用时没有找到 HSF 服务地址
515 hsf process error 调用 HSF 出错
516 hoh process error 级联调用 HSF 出错
517 json2hsf process error HTTP 调用 HSF 失败
518 service metadata is null 发布的 HSF 服务信息为空
519 access permission deny by black list 访问被黑名单拒绝
520 can not found service metadata 调用是没有从缓存中找到 HSF 服务的元信息
521 access permission deny, ip is not in white list 访问者的 IP 没有加入白名单
522 this invoke protocol not open 该服务没有开放成此协议
523 access permission deny due to strict accesskey and ip white list 此凭证设置了白名单,需要访问者 IP 加入到白名单里
524 exceed access limition, try later 触发限流
800 service server error 服务调用出错
801 connect to service server error 连接不到服务提供者
802 serivce has offline from server 此服务已经下线
803 serivce has been stopped 服务已经在 CSB 上关闭了
99 hsf escap code HSF 逃逸错误代码
900 Unknown code 未知错误代码
1001 bad soap request SOAP 消息不正确
1002 bad response 返回结果不正确
1003 bad hsf subscribe info 错误的 HSF 订阅信息
1004 hsf invoke exception HSF 调用异常
1005 bad input soap parsing 输入 SOAP 消息解析失败
1006 bad output soap parsing 输出的 SOAP 消息解析失败
1007 bad invoke restful provider HTTP 服务 Provider 异常
1008 json2ws process error, bad input restufl/json request HTTP 调用 WS 失败,HTTP 请求不正确
1009 json2ws process error 调用 WS 服务失败
10001 process response result data filter failed 结果过滤处理结果失败

HSF 错误代码

错误代码 错误描述信息 说明
20 OK HSF 调用成功
30 client timeout 调用端超时
31 server timeout 服务端超时
40 bad request 请求不合法
50 bad response 返回结果不合法
60 service not found 服务没有找到
70 service error 服务错误
79 connection has broken 连接已经断开
80 server error 服务提供端错误
81 Thread pool is busy 线程池繁忙
82 Communication error 通信异常
84 request is limited 请求被限流
88 server will close soon 服务很快就要关闭
90 client error 消费端错误
91 Unknown error 未知错误

消费端协议 Escape Code 列表

消费端协议Escape Code
HTTP类500
HSF99

举例说明

消费端应用以HSF协议通过CSB访问一个后端HSF服务,三个阶段的错误举例如下:

错误阶段错误示例
第一阶段错误CSB的HSF协议处理器发现消费端发出的HSF请求格式不正确,以HSF错误40 “bad request”直接回复消费端。
第二阶段错误CSB在处理消费端发出的HSF请求时,发现所访问的API并不存在,以HSF错误 99 “[504]所访问的服务API(taobao.unknown)在实例(instance0733)上不存在” 回复消费端。其中99为消费端协议HSF的Escape Code
第三阶段错误CSB处理消费端发出的HSF请求,在访问后端服务提供者时,HSF服务框架报错60 “service not found”,CSB以HSF错误 99 “[800][60] service not found” 回复消费端。其中99为消费端协议的Escape Code,800为CSB的Escape Code
第三阶段错误CSB处理消费端发出的HSF请求,在访问后端服务提供者时,HSF服务提供应用出错,因为HSF框架不支持返回具体应用逻辑错误信息,仅仅报错为80 “server error”,CSB以HSF错误 99 “[800][80] server error” 回复消费端。这里具体的应用错误只能在应用服务提供端看到,如果后端是其它比较开放的协议框架(用X代替),具体的应用错误信息可能可以报给CSB,这样CSB才能返回更具体的错误信息 99 “[800][X-Code] X-Message”