rabbitmq整合skywalking
起首先下载准备好skywalking 的服务端和ui控制台,java-agent
https://skywalking.apache.org/downloads/
整合skywalking
我的流程是在生产者和消费者服务中去引入一个mq的sdk,具体SDK的内容可以检察这篇文章
在sdk的pom文件中引入了skywalking依靠
- <!-- skywalking -->
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>apm-toolkit-logback-1.x</artifactId>
- <version>9.3.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>apm-toolkit-trace</artifactId>
- <version>9.3.0</version>
- </dependency>
复制代码 引入之后进行logback的配置,也大概你们是使用log4j这些,配置自行百度就行
生产者logback.xml配置
消费者logback.xml配置
发现问题
在完成了上述配置之后,启动项目,我发现消费者不停无法打印tid始终为n/a,经过一番查询后发现原来skywalking官方提供的消费插件不得当我们,其只针对官方原生Client实现扩展,但我们一般都是使用Spring Rabbitmq stater,以是我们无法实现链路追踪。@RabbitListener的工作原理可以看这篇文章https://blog.csdn.net/m0_72397750/article/details/140558744
总的来说就是我们一般使用注解来实现监听的,那么手动埋点就应该埋在开始处置处罚消息的executeListener()方法这
将消息头复制回来
详细的代码我放在了https://github.com/Aas-ee/skywalking-apm-sniffer 解释很详细 内里另有skywalking-rabbitmq的官方插件代码可以用来对照学习,可以拉取后直接打成jar包放到skywalking-agent/plugin目录下使用(觉得有效的话贫苦点点star,这对我很紧张),同时对于callback的打印也做了加强,但是不一定适用大家,主要用于学习思想和原理。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |