51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

如何保证系统的可观测性?请举例说明监控(如指标监控、日志分析)、日志(结构化日志)、链路追踪(如Jaeger、SkyWalking)在快手系统中的应用,并分析这些工具如何帮助快速定位问题。

快手Java开发工程师 📦 工程类难度:中等

答案

1) 【一句话结论】
系统可观测性通过指标监控、结构化日志、链路追踪等手段,全面收集运行数据,实现问题快速定位与诊断,是快手系统保障业务稳定的核心能力之一。

2) 【原理/概念讲解】
可观测性(Observability)指系统对外部可见的运行状态,包含三个核心维度:

  • 指标(Metrics):数值型数据(如QPS、错误率、响应时间),反映系统实时状态,类比“体温计”,实时监测健康指标;
  • 日志(Logs):文本记录(如请求元数据、业务数据),用于问题回溯,类比“病历”,记录历史行为;
  • 链路追踪(Tracing):跨服务调用路径的完整记录,追踪请求在分布式系统中的流动,类比“手术录像”,定位问题路径。
    三者结合,形成对系统的“全面感知”,帮助快速诊断故障根源。

3) 【对比与适用场景】

工具/维度定义特性使用场景注意点
指标监控通过数值指标(如QPS、错误率、延迟)监控系统状态实时、量化、可告警实时监控业务健康(如服务流量、错误率)需设计合理指标维度(如按服务、区域、时间),避免维度爆炸
结构化日志将日志以结构化格式(如JSON)记录,便于解析和查询可解析、可聚合、可关联问题排查、业务分析(如查询特定错误码的请求)日志格式需统一,避免解析困难;日志量大会影响存储和查询效率
链路追踪记录请求在分布式系统中的完整调用路径(服务间、内部组件)跨服务关联、时序分析、分布式调用链定位分布式系统中的性能瓶颈或故障点(如调用链耗时过长)高并发下链路数据量巨大,需采样或聚合;需考虑服务间通信的延迟影响

4) 【示例】
假设用户发起“查询订单”请求,调用链为:用户请求→服务A(订单服务)→服务B(商品服务)→数据库(查询商品信息)。

  • 指标监控:服务A的QPS达到1000/s(超过阈值),触发告警,提示流量异常;
  • 结构化日志:服务A记录日志,包含请求ID、用户ID、查询条件(JSON格式),如{"requestId": "12345", "userId": "u001", "query": "order?orderId=1001"};
  • 链路追踪:通过SkyWalking记录调用链,显示服务A调用服务B的耗时为200ms,服务B查询数据库的耗时为150ms,总调用链耗时350ms。
    当数据库响应慢时,通过链路追踪定位到数据库查询的瓶颈,结合指标监控(数据库QPS过高)和日志(错误码为500的请求),快速定位并优化数据库查询。

5) 【面试口播版答案】
保证系统可观测性主要通过监控、日志、链路追踪三方面协同。监控方面,我们用指标(如QPS、错误率)实时监控服务状态,比如服务A的QPS超过阈值时,能快速发现流量异常并告警;日志方面,采用结构化日志(JSON格式),记录请求的元数据、业务数据,便于通过关键词搜索或聚合分析,比如查询“错误码为500的请求”,快速定位问题;链路追踪方面,使用SkyWalking(或Jaeger),记录每个请求的跨服务调用路径,比如用户请求到服务A,服务A调用服务B,服务B查询数据库,通过链路追踪能看到每个节点的耗时,当数据库响应慢时,能定位到数据库查询的瓶颈。这些工具共同作用,能快速定位问题根源,比如通过指标发现异常,通过日志找到具体请求,通过链路追踪看到调用链的耗时分布,从而快速修复问题,保障系统稳定。

6) 【追问清单】

  1. 如何设计指标监控的维度?
    • 回答要点:需结合业务场景,如按服务、区域、时间、请求类型等维度,确保指标能覆盖关键业务指标,避免维度爆炸。
  2. 结构化日志和传统日志的区别?
    • 回答要点:传统日志是纯文本,难以解析和查询;结构化日志以键值对(如JSON)存储,便于程序解析、聚合分析,支持复杂查询(如按时间、错误码、用户ID等条件筛选)。
  3. 链路追踪中如何处理高并发下的性能?
    • 回答要点:通过采样(如1%的请求被追踪)或聚合(如统计调用链的平均耗时),减少数据量,同时保证关键请求的完整记录。
  4. 如何保证日志和链路追踪的实时性?
    • 回答要点:采用分布式日志系统(如Elasticsearch)和链路追踪系统(如SkyWalking),结合消息队列(如Kafka)缓冲数据,确保数据实时写入和查询。
  5. 可观测性数据如何存储和查询?
    • 回答要点:指标存储在时序数据库(如Prometheus),日志存储在日志系统(如ELK),链路追踪数据存储在分布式存储(如HBase),通过统一的查询接口(如Prometheus查询语言、ES查询)实现数据检索。

7) 【常见坑/雷区】

  1. 只强调监控指标,忽略日志和链路追踪的配合,导致问题定位不全面;
  2. 混淆监控和日志的作用,比如用日志代替指标进行实时告警,导致告警延迟或遗漏;
  3. 链路追踪中未考虑服务间通信的延迟,导致定位的瓶颈不准确;
  4. 忽略可观测性数据的存储成本,导致数据堆积或丢失,影响分析效果;
  5. 没有说明如何从数据中提取业务洞察,而只是说工具的使用,缺乏对业务问题的解决能力。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1