美文网首页
SOFATracer+zipkin记录多服务系统的链路调用

SOFATracer+zipkin记录多服务系统的链路调用

作者: 虫儿飞ZLEI | 来源:发表于2019-04-16 16:14 被阅读0次

    1. 介绍

    在分布式为服务系统中的相互调用,SOFATracer+zipkin可以将链路调用数据记录并展示出来,这些链路数据可用于故障的快速发现,服务治理等。

    SOFATracer用来记录数据保存在log文件中,zipkin用来展示并可查询数据。

    2. SpringBoot项目集成SOFATracer

    2.1 引入SOFABoot

    首先在pom文件中删除spring boot的parent,将parent改成sofaboot,这个SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等能力。在sofaBoot里面的parent还是引了springboot。

    将
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>${spring.boot.version}</version>
        <relativePath/> 
    </parent>
    替换为:
    
    <parent>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofaboot-dependencies</artifactId>
        <version>${sofa.boot.version}</version>
    </parent>
    

    这样子可能会造成SpringBoot的大版本变化,如果项目引的依赖比较多,那么SpringBoot大版本变化以后产生冲突的可能性还是挺高的,所以在引入SOFABoot 的时候最好选择SOFABoot 中的parent引用的SpringBoot版本与项目本来引用的SpringBoot版本相近的。
    如果还是避免不了冲突的话,那么只能一个个找到冲突,解决冲突,一般切换到合适的版本即可。


    2.2 添加SOFATracer 依赖

    其次,添加一个 SOFATracer 依赖:

    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>tracer-sofa-boot-starter</artifactId>
        <!-- SOFABoot 版本统一管控 -->
    </dependency>
    

    2.3 修改配置文件

    在SpringBoot的配置文件中指定appname和log文件夹的路径

    spring:
      application:
        name: ahhx-jcpt
    logging:
      path=: ./tracerlogs
    

    这样SOFATracer收集的数据就会以log的形式保存在tracerlogs文件夹下

    2.4 查看效果

    启动项目,访问项目的任意路径,查看项目结构


    会生成log文件

    点击查看log文件可以看到详细的内容


    image.png

    3. 配置Zipkin展示

    官网:https://zipkin.io/

    3.1 安装

    下载文件:
    curl -sSL https://zipkin.io/quickstart.sh | bash -s
    运行文件:
    java -jar zipkin.jar

    注意,这时运行的程序是运行在前台的,如果关闭了前台命令行,程序就会退出了。
    后台启动jar包,并输出日志到某个目录
    nohup java -jar zipkin.jar >logs/zipkin.log &

    3.2 修改配置文件

    com:
      alipay:
        sofa:
          tracer:
            zipkin:
              enabled: true
              baseUrl: http://ip:9411
    

    3.3 查看效果

    登陆:ip:9411


    4. 远程调用埋点

    可以支持RestTemplate、HttpClient。以RestTemplate为例。

    4.1 添加依赖

    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofa-tracer-resttmplate-plugin</artifactId>
    </dependency>
    

    4.2 修改代码

    不再通过new RestTemplate()来创建RestTemplate实例了,而是用SOFATracer提供的SofaTracerRestTemplateBuilder.buildRestTemplate()来获取RestTemplate实例,其他代码不变。

    4.3 启动项目并查看

    启动SpringBoot项目,调用上述接口,查看log文件夹



    可以看到有RestTemplate相关的log文件生成。

    更多内容可参阅SOFATracer官方文档
    https://www.sofastack.tech/sofa-tracer/docs/Home

    相关文章

      网友评论

          本文标题:SOFATracer+zipkin记录多服务系统的链路调用

          本文链接:https://www.haomeiwen.com/subject/mpybwqtx.html