全部产品

如何排查移动网关调用错误

更新时间:2020-03-25 20:55:28

问题定义

  • 前提条件

    • 客户端已经正确接入 MGS(移动网关)组件。
    • MGS 控制台已经正确配置好后端应用 API 服务。
  • 问题表现

    • 客户端通过代码发起 PRC 调用,但未能拿到预期结果。
  • 常见错误类型

    • MGS 无返回(客户端报错)。
    • MGS 无返回(超时)。
    • MGS 有返回,但结果码中显示存在错误。
    • MGS 有返回,无错误,但返回值不符合预期。

排查思路

针对上述四种常见类型的错误,基本排查思路如下:

  1. MGS 无返回(客户端报错)

    • 根据客户端 exception 详细信息判断错误来源。
    • 检查接入层面问题。
    • 检查类型转换的问题。
    • 检查空值的问题。
    • 检查网络问题
  2. MGS 无返回(超时)

    • 超时的场景可能比较复杂,时限可能来自:客户端超时设置、中间设备超时限制、MGS 网关 API 超时设置及后端应用服务器超时设置等。
    • 当超时问题发生时,首先要确认超时来自何方(客户端/网络/服务端),再根据具体的超时场景做进一步的复现和分析。
  3. MGS 有返回,但结果码中显示存在错误

    • 参考网关结果码详细说明,判断问题来源。
    • 网关侧错误码的出现,一般与 MGS 客户端/服务端的能力配置相关(权限/加解密/签名验证/API 限流)等,请根据错误仔细排查接入方式、验签配置、加解密配置等。
    • 业务侧错误码的出现,一般与后端应用服务相关。务必结合后端应用服务的日志和错误,排查业务侧服务是否存在异常。
  4. MGS 有返回,无错误,但返回值不符合预期:

    • 这类问题可能与应用逻辑相关。
    • 排查调用请求值和返回值之间的映射关系是否符合预期。
    • 排查业务侧服务接收到的请求值是否符合预期。
    • 排查业务侧服务对请求值的处理是否符合预期。
    • 排查业务侧服务返回的数据格式是否符合预期等。

工具和手段

在涉及网关调用问题的排查时,抓取HTTP数据包/网络包帮助问题分析往往是非常必要的。