在 Java 中使用 Dubbo 时,监控性能通常可以从 内置机制、第三方中间件、APM 工具、自定义埋点 等多个层面来做。下面按“从简单到专业”的方式给你梳理。
Dubbo 官方提供 Dubbo Admin,可以直接看:
使用方式:
dubbo-admin✅ 优点:简单、零侵入
❌ 缺点:粒度较粗,不适合复杂链路分析
早期 Dubbo 有 dubbo-monitor-simple,现在基本被 Dubbo Admin 替代。
Dubbo 2.7+ 支持 Micrometer。
引入依赖:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-api</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
配置示例:
dubbo:
metrics:
enabled: true
protocol: prometheus
可监控指标:
✅ 可对接:
Dubbo → Micrometer → Prometheus → Grafana
监控内容:
✅ 适合:
Dubbo 原生支持 SkyWalking。
特点:
使用方式:
-javaagent:/path/skywalking-agent.jar
✅ 不需要改业务代码
✅ 非常适合 Dubbo 微服务
@Activate(group = CommonConstants.PROVIDER)
public class PerformanceFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) {
long start = System.currentTimeMillis();
Result result = invoker.invoke(invocation);
long cost = System.currentTimeMillis() - start;
// 上报到日志 / MQ / 监控系统
return result;
}
}
✅ 可精细控制
❌ 需要维护代码
| 指标 | 说明 |
|---|---|
| QPS | 每秒请求数 |
| RT | 响应时间 |
| TP99 | 99% 请求耗时 |
| 错误率 | 失败调用占比 |
| 线程池 | 是否阻塞 |
| GC | 是否频繁 |
| 网络 | 是否超时 |
✅ 最常用方案:
Dubbo + SkyWalking + Prometheus + Grafana
✅ 简单方案:
Dubbo Admin
如果你愿意,我可以:
你现在的 Dubbo 是哪个版本?Spring Boot 还是纯 XML?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。