现在很多公司的 Java 语言项目都会采用微服务架构,这样做可以让每个开发人员仅在自己负责的子项目中进行开发,提高开发的效率,但是同时也带来了其他问题:
- 无法知道每个服务的运行情况,例如,某一台服务它目前的 QPS 是多少?它的平均延迟是多少,99% 的延迟是多少,99.9% 的延迟又是多少?
- 如何评估服务的容量,随着服务的调用量越来越大,这个服务需要多少机器来支撑?什么时候应该加机器?
- 当服务出现抖动时,如何判断是 DB、Cache 还是下游服务引起的?
- DB 和 Cache 响应延迟是多少?
- 某一个接口响应时间慢,如何定位是哪个方法引起的?
- 每个服务的负载是否均衡?
针对以上开发中所遇到的问题,小编为大家分享一款开源的性能监控统计神器:MyPerf4J。专门针对高并发、低延迟应用设计,简单快速、无侵入。能够快速定位性能瓶颈,快速定位故障原因。该项目受 perf4j 和 TProfiler 启发而来。目前已在GitHub上斩获了 3.2k stars。
- 开源免费,简单快速、无侵入、透明化接入
- 针对高并发、低延迟应用设计
- 高性能: 单线程支持每秒 1600 万次 响应时间的记录,每次记录只花费 63 纳秒
- 无侵入: 采用 JavaAgent 方式,对应用程序完全无侵入,无需修改应用代码
- 低内存: 采用内存复用的方式,整个生命周期只产生极少的临时对象
- 高实时: 支持秒级统计,最低统计粒度为 1 秒,并且是全量统计,不丢失任何一次记录
- 可配置:可指定统计或不统计某些类、某些方法
- 拥有极致的性能,不影响应用的 GC,不影响应用的 RT
- 能统计出方法的 RPS、Avg、Min、Max、StdDev、TP90、TP95、TP99、TP999 等性能指标
- 性能指标的处理可以定制化,例如:日志收集、上报给日志收集服务等
© 版权声明
THE END
暂无评论内容