前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >无侵入分布式应用性能监控系统的实现原理

无侵入分布式应用性能监控系统的实现原理

作者头像
老钱
发布2019-06-04 17:51:09
发布2019-06-04 17:51:09
2K0
举报
文章被收录于专栏:码洞码洞

我是挖坑的张师傅,vim 党。从事 Java 开发六年多,做过安卓,现在深耕后台开发,在 CVTE 担任技术经理,带一个 20 多人的开发团队做教育相关的产品。

因为喜欢保持简单,自己花了一些时间造了很多轮子,比如 REST 服务端框架、数据库连接池、SQL 执行框架、类 Dubbo 的 RPC 调用框架、自己实现 Gossip 协议、延时队列等。

曾有一段时间花了半年一个人吭哧吭哧做了一个无侵入的字节码注入的 APM(应用性能监控) 平台(跟听云、newrelic 一样的项目),对整个后端调用栈做了监控。把字节码操作玩的炉火纯青,顺手无侵入的破解了一系列Java 系软件。

也许你写了无数行代码,会用很多炫酷的语法糖和高级的框架,但你未必了解这些高级语言背后的执行过程。即时对于一名经验丰富的 Java 程序员,在阅读 Java 字节码的时候也会感到很枯燥。我们为什么需要深入了解如此底层的信息呢?

知其然到知其所以然,理解花里胡哨语法糖背后的实现原理

  • 有没有深究过「finally 代码块一定会执行」这个耳熟能详的规则背后真实的原因?
  • 有没有好奇过 Kotlin 的 when 语法、Coroutine 是如何实现的?
  • 有没有研究过 Spring AOP 背后的实现原理?

可以实现各种JVM 黑科技

  • ZeroTurnaround 公司开发的 JRebel 插件实现了热部署,XRebel 插件实现了开发调试阶段的性能分析利器;
  • fastjson 使用字节码改写技术避免了反射的开销,大大提高了反序列化的性能;
  • 不修改原始 jar 包的情况下,实现软件的破解?

无侵入应用性能监控(APM)的基石

从国外的 NewRelic 到国内大火的听云、OneAPM,到最近微信和 360 都开源的安卓端 APM,都是基于字节码改写来实现了强大的探针监控功能,可以在不改一行代码的情况下,实现移动端到后端的全链路监控,通过慢交互、慢加载、调用链等,快速查明故障域,定位性能瓶颈?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码洞 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 知其然到知其所以然,理解花里胡哨语法糖背后的实现原理
  • 可以实现各种JVM 黑科技
  • 无侵入应用性能监控(APM)的基石
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档