100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Dubbo + Zipkin + Brave 实现全链路追踪

Dubbo + Zipkin + Brave 实现全链路追踪

时间:2020-07-01 02:22:59

相关推荐

Dubbo + Zipkin + Brave 实现全链路追踪

这两天看了好几篇帖子,写zipkin与dubbo整合的内容都不全面,忍不住亲自上手码一遍。

利用zipkin可以对dubbo进行调用链监控,可以查到调用链中的dubbo服务的性能,并且dubbo提供了SPI的接口,能很容易完成并自定义相应的filter去监控dubbo服务。

ZipKin介绍

Zipkin是一个致力于收集分布式服务的时间数据的分布式跟踪系统。

Zipkin 主要涉及四个组件:collector(数据采集),storage(数据存储),search(数据查询),UI(数据展示)。

github源码地址:/openzipkin/zipkin。

Zipkin提供了可插拔数据存储方式:In-Memory,MySql, Cassandra, Elasticsearch

ZipKin部署与运行 (注意需要在linux下运行,JDK1.8)

1、下载zipkin

/maven2/io/zipkin/java/zipkin-server/2.11.7/zipkin-server-2.11.7-exec.jar

2、运行zipkin

(1)In-Memory方式

注意:内存存储,zipkin重启后数据会丢失,建议测试环境使用

(2)MySql方式

目前只与MySQL的5.6-7。它的设计是易于理解,使用简单。但是,当数据量大时,查询很慢。性能不是很好。

创建数据库zipkin,建表 :

启动zipkin命令

(3)Elasticsearch方式

创建elasticsearch用户,安装启动Elasticsearch服务

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

zipkin启动命令

启动成功访问地址:http://192.168.20.15:9411/zipkin/(192.168.20.15替换为对应zipkin部署服务器地址)

效果图如下:

整合

简单的描述一下,同ServletFilter一样,在dubbo中利用Filter过滤请求,传递TraceId等参数,生成相应的span传递给zipkin服务器。引入brave-instrumentation-dubbo-rpc包,这是一个SPI的Filter包。

brave-instrumentation-dubbo-rpc包里面有一个TracingFilter的类,在其invoke方法中实现了对span的一些操作。

该Filter是以SPI的方式引入dubbo的,在默认文件/META-INF/dubbo/com.alibaba.dubbo.rpc.Filter中,有这样的声明:

然后在dubbo的配置中引入该Filter即可。

wholly-dubbo-provider.xml

wholly-dubbo-consumer.xml

brave.properties

然后还需要为该Filter注入一个Tracing实例,并且该实例名必须为tracing。

Tracing类的主要作用是针对span的操作做一些配置,并设置上传zipkin服务器。

效果

在这里不演示如何配置dubbo服务,之前的博文有相关介绍。效果图如下:

示例下载:zipkin+dubbo整合示例

参考:

zipkin与dubbo整合-https://shiliewrain.github.io//07/20/zipkin2-dubbo/

dubbo+zipkin调用链监控-/ASPNET/p/6709900.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。