spring-cloud 链路追踪

网友投稿 651 2022-05-30

spring-Cloud 链路追踪

为什么需要链路追踪?

可以理清微服务间的调用关系;

可以快速查询日志;

可以实施系统监控;

根据traceId可以方便的查看这个服务的调用过程,请求参数、调用类、方法、lineNum、message信息;

目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。

一、spring-cloud-sleuth

官网: https://spring.io/projects/spring-cloud-sleuth

准备工作:docker 安装 zipkin server,nacos注册中心默认已有

docker pull openzipkin/zipkin

docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin

访问zipkin服务:http://localhost:9411/zipkin/

开始构建项目 paw-trace-sleuth,添加依赖

org.springframework.cloud spring-cloud-dependencies ${release.train.version} pom import org.springframework.cloud spring-cloud-starter-sleuth

未加依赖之前日志

引入sleuth依赖后日志

将数据发送到zipkin sever。

zipkin 配置

spring:

zipkin:

base-url: http://localhost:9411/

写一个服务调用 注册中心nacos,用openfeign调用

增加依赖,并在启动类开始 @EnableDiscoveryClient @EnableFeignClients

com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config org.springframework.cloud spring-cloud-starter-openfeign

定义feignclient

@FeignClient("paw-trace-sleuth-b") public interface SleuthBFeignClient { @GetMapping("/sleuthB") public String sleuthB(); }

服务调用

spring-cloud 链路追踪

@Slf4j @RestController public class SleuthController { @Autowired private SleuthBFeignClient sleuthBFeignClient; @GetMapping("/sleuth") public String sleuth(){ log.info("==== sleuth"); String sleuthB = sleuthBFeignClient.sleuthB(); log.info(sleuthB); return "sleuth"; } }

创建服务调用的项目项目paw-trace-sleuth-b,配置过程同上

增加feign调用的开放接口

@RestController public class SleuthBController { @GetMapping("/sleuthB") public String sleuthB(){ log.info("sleuthB"); return "sleuthB"; } }

启动项目,查看日志,链路已生成

访问记录已发送到zipkin sever端。

show 显示详细信息。

官网文档,slf4j的logback日志已经添加了默认的日志格式,可以自定义logback-spring.xml日志。

zipkin默认用内存存储数据,实际项目中一般用 kafa+ES存储数据

docker 方式:

docker run -it -d --restart=always -e KAFKA_BOOTSTRAP_SERVERS=10.0.1.66:9092

-e STORAGE_TYPE=elasticsearch -e ES_HOSTS=http://10.0.1.66:9200 -p 10086:9411 openzipkin/zipkin

启动jar的方式

java -DKAFKA_ZOOKEEPER=10.22.0.130:2181 -DSTORAGE_TYPE=elasticsearch

-DES_HOSTS=http://10.22.0.130:9200 -jar zipkin.jar

Spring

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【前端】Sketch 从零开始学
下一篇:JSON的详细讲解 --
相关文章