View on GitHub

JVMByteCodeGitBook

《Java虚拟机字节码:从入门到实战》第二版《深入浅出JVM字节码》开源电子书。这本书详细介绍ASM框架的API、Class文件结构解析、HotSpot虚拟机类加载源码分析、动态代理与字节码插桩的实现。

一款轻量级的分布式调用链路追踪Java探针vine

vine1是一款轻量级的分布式调用链路追踪-Java探针。对于同进程内,vine在调用链路入口处创建用于收集日记的单向链表, 调用链路上每经过一个方法都会向链表尾部追加日记,最终在调用链路出口处打印整个调用链路的日记;不同进程间,通过传递事件ID将整条链路串连起来。

vine只是探针,不负责日记的收集。 如果您项目中也是将日记收集到阿里云日记服务(或者其它日记服务),那么可以使用vine将调用链路日记输出到阿里云日记服务(或者其它日记服务)。

使用说明

启动示例:

java -javaagent:{绝对路径}/vine-agent.jar={绝对路径}/vine-core-jar-with-dependencies.jar,\
{绝对路径}/vine-spy.jar=agent.package={应用包名,如:com.wujiuye.app} -jar {应用的jar包}

Docker镜像构建配置文件示例:

FROM java:8-jdk-alpine

WORKDIR /usr/app

COPY ./test-app.jar ./

COPY ./agent/vine-agent.jar ./
COPY ./agent/vine-core-jar-with-dependencies.jar ./
COPY ./agent/vine-spy.jar ./

ENTRYPOINT ["java", "-server", "-XX:+UseG1GC",\
    "-javaagent:/usr/app/vine-agent.jar=/usr/app/vine-core-jar-with-dependencies.jar,/usr/app/vine-spy.jar=agent.package=com.test",\
    "-jar", "test-app.jar"]

各模块说明

vine的核心设计

实现环境隔离

使用不同类加载器加载不同模块,实现环境隔离:


发布于:2021 年 06 月 27 日
作者: 吴就业
GitHub链接: https://github.com/wujiuye/vine
博客链接: https://www.wujiuye.com/ebook/JVMByteCodeGitBook/chapter/opensourceprojects_beemite.md
<font color= #666666>来源: Github开源项目:vine,未经作者许可,禁止转载!</font>

  1. https://github.com/wujiuye/vine