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

问题描述

  • 前提条件

    • 客户端已经正确接入移动网关组件(MGS)。

    • MGS 控制台已经正确配置好后端应用 API 服务。

  • 问题表现

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

  • 常见错误类型

    • MGS 无返回(客户端报错)。

    • MGS 无返回(超时)。

    • MGS 有返回,但结果码中显示存在错误。

    • MGS 有返回,无错误,但返回值不符合预期。

排查思路

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

  • MGS 无返回(客户端报错)

    1. 根据客户端 exception 详细信息判断错误来源。

    2. 检查接入层面问题。

    3. 检查类型转换的问题。

    4. 检查空值的问题。

    5. 检查网络问题。

  • MGS 无返回(超时)

    • 超时的场景可能比较复杂,时限可能来自:客户端超时设置、中间设备超时限制、MGS 网关 API 超时设置及后端应用服务器超时设置等。

    • 当超时问题发生时,首先要确认 超时 来自何方(客户端/网络/服务端),再根据具体的超时场景做进一步的复现和分析。

  • MGS 有返回,但结果码中显示存在错误

    • 参考 网关结果码详细说明,判断问题来源。

    • 网关侧错误码 的出现,一般与 MGS 客户端/服务端的能力配置相关(权限/加解密/签名验证/API 限流)等,请根据错误仔细排查接入方式、验签配置、加解密配置等。

    • 业务侧错误码 的出现,一般与后端应用服务相关。务必结合后端应用服务的日志和错误,排查业务侧服务是否存在异常。

  • MGS 有返回,无错误,但返回值不符合预期

    • 这类问题可能与应用逻辑相关。

    • 排查调用请求值和返回值之间的映射关系是否符合预期。

    • 排查业务侧服务接收到的请求值是否符合预期。

    • 排查业务侧服务对请求值的处理是否符合预期。

    • 排查业务侧服务返回的数据格式是否符合预期等。

工具和手段

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