截选:https://blog.csdn.net/u012410733/article/details/104878111
1、为什么系统需要监控
随着分布式服务框架的流行,特别是微服务等设计理念在系统中应用,业务的调用链越来越复杂。

可以看到,随着服务的拆分,系统的模块变得越来越多,不同的模块可能由不同的团队维护。

一个调用请求可能会涉及到几十个服务协同处理,牵扯到多个团队的业务系统,那么如何快速定位到线上故障?如何有效的进行相关的数据分析工作?

对于大型网站系统,如淘宝、京东等大型互联网公司,这些问题尤其突出。

2、如何对服务埋点
我们如何在代码中添加监控信息,一般有以下三种情况:

在系统中使用硬编码的形式来添加监控代码
使用 AOP 面向切面的形式来添加监控代码
使用 Java 高级特性 Java Agent 在 JVM 层面来 AOP 添加监控代码
在系统中使用硬编码的情况对于单体系统来说来可以用用,但是对于分布式系统,就不太适合了。同样的使用 AOP 编程对于每一个系统都必须引入切面以及相应的切面配置,对于小型分布式系统来说还勉强可以。对于成百上千个服务集群来说简直是一个噩梦。所以对于大型系统一般都是采用 Java Agent 这个 JVM 层面的 AOP 来添加监控逻辑。也就是字节码增强,这样对于业务代码可以零倾入。

xxx.java ==> xxx.class ==> jvm 指令码 ==> 汇编 ==> CPU

如上图所示, Java 程序需要运行时:首先 Java 源代码需要编译成 Class 文件,文件的内容就由若干条 JVM 指令组成的集合(即代码逻辑)。插桩的过程就是将这些指令,拆开来,然后再插入监控所需指令,最后进行重新组装生成新的 Class 字节。

3、Java Agent
javaagent 是 java 1.5 之后引进的特性,其主要作用是在 class 被加载之前对其拦截,已插入我们的监听字节码。Agent分为两种,一种是在 main 程序之前运行的 Agent,一种是在主程序之后运行的 Agent(前者的升级版,1.6以后提供)下面我们分别来举例说明。

javaagent的优势相关推荐

  1. 探针技术-JavaAgent 和字节码增强技术-Byte Buddy

    能够基于Java Agent编写出普通类的代理 理解Byte Buddy的作用 能够基于Byte Buddy编写动态代理 1 Byte Buddy Byte Buddy 是一个代码生成和操作库,用于在 ...

  2. ALD对照CVD淀积技术的优势

    ALD对照CVD淀积技术的优势 ALD 适合制备很薄的高K金属氧化物层,对腔室的真空度要求比较高,对反应气体源及比例的要求也较高. 目前沉积速率还是比较慢,大大限制了其在工业上的推广应用,不过随着设备 ...

  3. 机器学习PAL产品优势

    机器学习PAL产品优势 PAI支持丰富的机器学习算法.一站式的机器学习体验.主流的机器学习框架及可视化的建模方式.本文介绍PAI的产品优势. 丰富的机器学习算法 PAI的算法都经过阿里巴巴集团大规模业 ...

  4. 2019个嵌入式市场研究,持续的C/C++优势

    2019个嵌入式市场研究,持续的C/C++优势 2019 Embedded Markets Study reflects emerging technologies, continued C/C++ ...

  5. 如何找到自己的优势并坚定信念执行下去

    来源于网络,若侵权请联系删除 在生活中学会不断挖掘自己的潜力.我们都是一个普通人,可能并不清楚自己到底在哪方面占有优势.所以,学着在生活中找到自己的优势,并根据优势选择一定的就业方向. 不随波逐流.不 ...

  6. 计算机检索的优点,专利检索与分析系统拥有哪些优势?

    专利检索与分析系统拥有哪些优势?现在很多朋友都在了解专利检索与分析系统又有哪些优势,因为他们需要使用这些系统,不少朋友都会利用业余时间搞各种发明专利,并申请发明专利,在申请之前,人们就需要对专利进行检 ...

  7. 计算机金融交叉学科考研,22考研:交叉学科可能成为新选择!它有哪些优势?

    2022考研的考生已经进入备战状态,近日,教育部官网公布增设了一个"交叉学科"门类(门类代码为"14").不少考研新手咨询什么是交叉学科?选择交叉学科有哪些优势 ...

  8. 黑龙江科技大学计算机类分数线,2019年黑龙江科技大学优势专业排名及分数线...

    [www.altdl.com.cn--黑龙江] 2018年本站提醒每个考生,填报志愿时候必须注意每个大学都有自己的优势专业和特色专业,是主要和最擅长教育出这种特色专业方面的人才的,也是这个大学比较好的 ...

  9. C语言优势大揭露,你还在等什么呢?

    有道是,0生1,1生C,C生万物. C语言,有太多的优势! 1.简洁紧凑.灵活方便 2. 运算符丰富 3.数据结构丰富 4.属于结构式语言 5.语法限制不太严格.程序设计自由度大 6.允许直接访问物理 ...

  10. nio的优势_NIO研究所 | 最有AI的EC6故事

    随着EC6的交付开启,在大定盲盒活动中抽到"飞行嘉宾"交付的用户,也陆续和他们的专属"交付专员"见面了,先分享一波有爱的EC6提车现场? << 左右 ...

最新文章

  1. Linux下SSH命令使用方法详解
  2. Android:如何将Enum放入捆绑包中?
  3. 零基础学python需要多久-零基础学python大概要多久
  4. C# .net 下拉框显示提示内容-【ComboBox】
  5. vectorPoint points未声明的标识符
  6. 2021暑假实习-SSM超市积分管理系统-day08笔记
  7. pyflink的local模式实验记录
  8. Linux有趣指令(二)
  9. 逃跑吧少年服务器临时维护中,逃跑吧少年—逃跑吧少年5月30日更新 主动技能解锁...
  10. docker网络基础配置
  11. 通过批处理来运行python程序
  12. [android]netd与NetworkManagementService初印象
  13. vue实现二维码扫码功能
  14. Visual.Assist.X.V10.7.1912的Crack破解补丁
  15. 第一次登陆阿里云ECS云服务器及其配置
  16. python|教你用代码画“社会人”
  17. 更新禅道踩坑问题及禅道更新步骤
  18. 热乎乎的宇宙头条校招前端面经
  19. VMware虚拟机安装Linux教程(CentOS7)
  20. 设置chrome浏览器的开发调试工具主题为dark模式

热门文章

  1. vuejs 开发中踩到的坑
  2. 谁能告诉我war包的作用及使用方法。。。。。。
  3. javascript 中==和===的区别
  4. 垃圾收集器分类与GC性能指标
  5. Oracle 数据库常用操作总结一之用户的创建、删除和赋权
  6. IP地址、子网掩码、有效子网数、有效主机数
  7. ssm中web配置各框架的配置文件路径方式
  8. mac git 自动补全
  9. JDK 8 函数式编程入门
  10. 超全面的JavaWeb笔记day11JSPSessionCookieHttpSession