dubbo服务整合zipkin详解


Posted in Java/Android onJuly 26, 2021

去年一直有想法将openTracing整合进自己的dubbo服务的想法。但是zipkin brave 对 dubbo的支持,没有更新到最新版本,所以一直没有行动。

目前zipkin支持的语言,以及框架如下图:具体可以参考官方网址

dubbo服务整合zipkin详解

dubbo服务整合zipkin详解

其中brave library 是一个java项目,提供了对主流web服务会用到的组件的支持,如dubbo,httpclient,mysql等。

另,SpringCloudSleuth,也是在zipkin brave 基础上的发展起来的一个分布式追踪系统,所以又多了一个整合zipkin的理由;

我在我自己的springWebMVC + Dubbo + Mysql + RocketMQ 的服务中,直接引入了spring-cloud-starter-zipkin

dubbo服务整合zipkin详解

可以看到引入spring-cloud-starter-zipkin会自动引入instrumentation的一些jar包,自动会对通过springWebMVC,httpClient进行的http通信进行链路跟踪;但是我需要添加对dubbo协议的支持,那么就需要额外引入brave-instrumentation-dubbo(针对dubbo有两个jar包可以使用,分别对应不同版本的dubbo,instrumentation-dubbo对应dubbo2.7.0以上,instrumentation-dubbo-rpc对应dubbo2.6.0以上2.7.0以下);引入jar包后,需要进行一些配置,如下zipkin的相关配置

#通过http协议上报tracing信息,这里的地址是zipkin服务的地址
#spring.zipkin.base-url=http://localhost:9411
#服务名称
spring.zipkin.service.name=my-consumer
#开启上报到zipkin服务,如果不开启的话,tracing信息还是会在不同服务中传递,只是不会上报的zipkin服务端
spring.zipkin.enabled=false
#使用默认 http 方式收集 span 需要配置此项
spring.zipkin.sender.type=web
#采样率,默认是0.1, 如果是1的话,代表百分之百采样
spring.sleuth.sampler.probability=1

关于dubbo的配置,只需要如下

#add tracing filter
dubbo.consumer.filter = tracing
#add tracing filter
dubbo.provider.filter = tracing

这样就可以在日志中加上traceId的输出,来更好的进行链路分析,%X{traceId}的写法,显然原理是放在MDC中;这样就只需要通过一个traceId就能分析代码全链路里都做了哪些事情,当然前提是你有记日志;

dubbo服务整合zipkin详解

如果你只是需要一个traceId来方便追踪日志,那么这里就已经可以了;如果还需要zipkin的链路分析功能,那么就需要搭建一个zipkin服务;可以直接在zipkin官网上找到docker启动zipkin的quickstart

然后在系统中进行相应配置即可访问http://localhost:9411查看;

dubbo服务整合zipkin详解

dubbo服务整合zipkin详解

dubbo服务整合zipkin详解

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
Netty结合Protobuf进行编解码的方法
Jun 26 Java/Android
Maven学习----Maven安装与环境变量配置教程
Jun 29 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
Jun 30 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
解决Jenkins集成SonarQube遇到的报错问题
Jul 15 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
Java数据开发辅助工具Docker与普通程序使用方法
Sep 15 Java/Android
java objectUtils 使用可能会出现的问题
Feb 28 Java/Android
Java 获取Word中所有的插入和删除修订的方法
Apr 06 Java/Android
Java中API的使用方法详情
Apr 06 Java/Android
spring boot中nativeQuery的用法
Jul 26 #Java/Android
java泛型通配符详解
Jul 25 #Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 #Java/Android
SpringRetry重试框架的具体使用
Java反应式框架Reactor中的Mono和Flux
关于springboot 配置date字段返回时间戳的问题
Jul 25 #Java/Android
用Java实现简单计算器功能
You might like
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python中偏函数用法示例
2018/06/07 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Apache部署Django项目图文详解
2019/07/30 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
Sql面试题
2013/03/20 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
个人自我剖析材料
2014/02/07 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2014年党务工作总结
2014/11/25 职场文书
追悼会答谢词
2015/01/05 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android