美文网首页面试宝典
微服务 - 对于快速追踪与定位问题

微服务 - 对于快速追踪与定位问题

作者: 撸帝 | 来源:发表于2019-02-28 02:40 被阅读0次

学习完整课程请移步 互联网 Java 全栈工程师

在微服务复杂的链式调用中,我们会比单体架构更难以追踪与定位问题。因此,在设计的时候,需要特别注意。一种比较好的方案是,当 RESTful API 接口出现非 2xx 的 HTTP 错误码响应时,采用全局的异常结构响应信息。其中,code 字段用来表示某类错误的错误码,在微服务中应该加上“{biz_name}/”前缀以便于定位错误发生在哪个业务系统上。我们来看一个案例,假设“用户中心”某个接口没有权限获取资源而出现错误,我们的业务系统可以响应“UC/AUTH_DENIED”,并且通过自动生成的 UUID 值的 request_id 字段,在日志系统中获得错误的详细信息。

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "code": "INVALID_ARGUMENT",
    "message": "{error message}",
    "cause": "{cause message}",
    "request_id": "01234567-89ab-cdef-0123-456789abcdef",
    "host_id": "{server identity}",
    "server_time": "2014-01-01T12:00:00Z"
}

此外,我们需要在记录日志时,标记出错误来源以及错误详情便于更好地分析与定位问题。

相关文章

网友评论

    本文标题:微服务 - 对于快速追踪与定位问题

    本文链接:https://www.haomeiwen.com/subject/ysjcuqtx.html