首页 > 项目 > 当前页面

微服务定位问题

2026-06-30 NEW个对象

SkyWalking定位慢点,然后EKL分析日志。

SkyWalking 默认会自动采集 HTTP、RPC、数据库等调用,但对于内存计算、复杂算法、Word 或 Excel 生成等纯业务逻辑,需要通过 skywalking-toolkit-trace 提供的注解进行自定义埋点。我通常会在关键业务方法上使用 @Trace 创建 Span,通过 @SpanTag 或 ActiveSpan.tag() 记录业务参数,如学校 ID、报告类型等;对于一个方法内部的多个耗时步骤,则使用 ContextManager.createLocalSpan() 创建多个子 Span,例如将“查询数据”“统计分析”“图表生成”“Word 渲染”等分别统计耗时。这样在 SkyWalking 的调用链中,不仅能看到整个接口耗时,还能精确定位到底是哪一个业务步骤成为性能瓶颈。


SkyWalking 主要负责可观测性,它能够帮助我们定位哪个接口、哪个微服务、哪个方法、哪个 SQL 或 RPC 调用耗时或报错,并通过 TraceId 将整个调用链串联起来。但对于限流、熔断、降级等治理行为,SkyWalking 通常只能看到最终的调用结果,例如进入了 Fallback 或调用失败,无法告诉我们触发的具体规则和原因。这些需要到 Sentinel Dashboard 查看流控规则、熔断规则和实时指标。同样,数据库死锁需要查看 MySQL,消息积压需要查看 RocketMQ Dashboard,Redis 阻塞需要查看 Redis 监控。因此,线上排查通常是SkyWalking 定位问题位置,再结合 ELK 和各中间件管理平台分析根因,而不是依赖 SkyWalking 完成所有诊断。

相关文章

  • SQL的执行流程

    SQL 在 MySQL 中会先经过解析器和优化器生成执行计划,然后由执行器调用存储引擎执行,数据优先从 Buffer Pool 获取,没有则访问磁盘。

    NEW个对象 2026-06-06

  • 时候直面检索增强生成技术(RAG)的真相:这个解决方案本身亟待完善。

    时候直面检索增强生成技术(RAG)的真相:这个解决方案本身亟待完善。

    NEW个对象 2026-06-19

  • 分布式锁粒度

    在任务中心里,每个用户的任务进度以JSON的格式存放在数据库表里。 因此redis锁的设置:task:lock:taskId,所有的过滤器都添加锁,因为每个过滤器都会影响任务的进度。

    NEW个对象 2025-02-13

NEW个对象 NEW个对象
JAVA是世界上最好的语言