dubbo 整合 zipkin,最简单的方式,亲测有效

  • Post author:
  • Post category:其他


大家好,我是烤鸭。

之前也试过网上很多版本,看了好多文章。现在分享最简单的方式,代码侵入性最小的。

1. 修改pom,引入jar。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.9.RELEASE</version>
</dependency>
<!--zikpin-->
<!-- https://mvnrepository.com/artifact/io.zipkin.brave/brave-instrumentation-dubbo-rpc -->
<dependency>
    <groupId>io.zipkin.brave</groupId>
    <artifactId>brave-instrumentation-dubbo-rpc</artifactId>
    <version>5.6.8</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!--zikpin end -->

2. 下载 zipkin.jar 并启动

wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'
nohup java -jar zipkin-server-2.12.9-exec.jar

启动成功后访问如图:

3. 修改 yml 配置文件

增加 zipkin相关配置,provider 和 consumer 都需要添加

spring:
  servlet:
    multipart:
      max-file-size: 20MB
      max-request-size: 20MB
      enabled: true
  zipkin:
    enabled: true
    base-url: http://xx.xx.xx.69:9411  #zipkin地址
    sender:
      type: web #向http发送trace信息

provider:

增加 provider.filter: ‘tracing’

dubbo:
  application:
    id: etc_manage_service
    name: etc_manage_service
  protocol:
    port: 20883
    threadpool: cached
    threads: 500
    accepts: 1000
    dispatcher: message
  provider:
    timeout: 600000
    filter: 'tracing'
  registry:
    address: zookeeper://127.0.0.1:2181
  scan:
    basePackages: xxx.xxx

consumer:

增加 consumer.filter: ‘tracing’

dubbo:
  application:
    id: etc_manage_web
    name: etc_manage_web
  registry:
    address: zookeeper://127.0.0.1:2181
  scan:
    base-packages: xxx.xxx
  consumer:
    filter: 'tracing'

4. 启动服务后,调用如图:

总结:


最开始的时候,也有时候会有调用服务,但是zipkin 没有收到请求的情况,发现是 zipkin 没有生效,可能是


引入的zipkin的包太多了


,删除不用的。

还有


zipkin的配置




zipkin.base-url:xx

这个地方是


base-url


,不是baseUrl。

还有就是 consumer 有记录,但是 provider没有。

配置了


provider.filter


之后,又重启了服务,之后试了几次,就可以了。



版权声明:本文为Angry_Mills原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。