SpringCloud-Sleuth-Zipkin服务跟踪
需求分析:
微服务架构下一个业务处理多层服务调用,例如:A调用B -> B调用C -> C调用A 要追踪各个服务调用链耗时等情况
1.安装ZipKin服务
ZipKin官网:https://zipkin.io/pages/quickstart.html
Docker方式部署(Docker环境:https://www.cnblogs.com/zhangdongfang/p/11810455.html)
执行 docker run -d -p 9411:9411 openzipkin/zipkin 即可快速部署
ZipKin环境验证:
2.引入Sleuth-ZipKin
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
由于spring-cloud-starter-zipkin内已经包含了 zipkin和sleuth,故引入spring-cloud-starter-zipkin即可
3.配置zipkin服务
4.验证(本次流程: a. client调用order创建订单; b. order 调用 product 获取商品信息;c. order调用product扣减库存;d. product扣减库存后,将商品信息消息发送mq;e. order监听mq获取product应用发送商品信息处理)
order应用日志:
2019-11-23 12:44:46.844 INFO [order,ece634965bc3b8c4,022508e26329677e,true]
order为应用名称;ece634965bc3b8c4 traceId(追踪总线,本次唯一) ; 022508e26329677e 为spanId(追踪辅线 内部接口调用)
product应用日志:
2019-11-23 12:44:46.840 INFO [product,ece634965bc3b8c4,48b95dff7c748822,true]
product为应用名称;ece634965bc3b8c4 traceId(追踪总线,本次唯一) ; 48b95dff7c748822 为spanId(追踪辅线 内部接口调用)
Zipkin应用查看:
a.创建订单
b.调用product应用查询商品列表
c.调用product应用扣减库存
d.product应用发送商品信息到mq
e.监听mq获取product应用发送商品信息,进行业务处理