继上一篇 添加链接描述我们简单搭建了关于springcloud的服务链路追踪与分析,本篇我们在此基础上加入rabbitmq的整合,从而搭建一套简易的使用rabbitmq进行服务追踪的框架;
为什么加入rabbitMq
正常情况下,zipkin的原理是,服务之间的调用关系会通过http的方式上报到zipkin-server,然后交由zipkin-server管理服务之间的调用关系链,然后我们通过ui界面去追踪服务之间的调用链路,
但这样做可能存在一个问题就是,如果哪天在某个服务调用另外一个服务端额时候,调用链路上出现网络的闪断或者其他故障,层级简单的调用还容易排查定位,但是调用层级复杂的话这就有点儿坑了,这样一来,zipkin-server由于服务无法追踪而导致问题无从排查,
试想,某个服务在调用另外一个服务的时候,除了zipkin-server,还能通过某个消息存储的容器将本次调用其他服务的消息数据进行持久化存储,这样不就可以解决问题吗?这就是使用zipkin配合rabbitMq进行服务追踪的来源,即服务之间的调用关系不仅发到zipkin-server,而且还会发到mq中,当然也可以使用my