spring cloud sleuth 服务跟踪

约定不等于承诺〃 2023-07-13 03:39 35阅读 0赞

spring cloud sleuth 服务跟踪

作用:追踪分布式系统中服务的调用路径,分析各服务的延时时间

****************************

服务1:hello-service

********************

配置文件

application.yml

  1. spring:
  2. application:
  3. name: hello-service
  4. cloud:
  5. consul:
  6. host: 192.168.57.21
  7. port: 8500
  8. discovery:
  9. prefer-ip-address: true

********************

cotroller 层

HelloController

  1. @RestController
  2. public class HelloController {
  3. private Logger logger= LoggerFactory.getLogger(HelloController.class);
  4. @RequestMapping("/hello")
  5. public String hello(){
  6. logger.info("hello service 本地调用:{}","hello world");
  7. return "hello world";
  8. }
  9. }

****************************

服务2:hello-conusmer

********************

配置文件

application.yml

  1. spring:
  2. application:
  3. name: hello-consumer
  4. cloud:
  5. consul:
  6. host: 192.168.57.21
  7. port: 8500
  8. discovery:
  9. prefer-ip-address: true

********************

service 层

  1. @FeignClient(name = "hello-service",fallback = HelloServiceImpl.class)
  2. public interface HelloService {
  3. @RequestMapping("/hello")
  4. String hello();
  5. }

********************

serviceImpl 层

  1. @Service
  2. public class HelloServiceImpl implements HelloService {
  3. @Override
  4. public String hello() {
  5. return "本地输出 hello world";
  6. }
  7. }

********************

controller 层

  1. @RestController
  2. public class HelloConsumerController {
  3. private Logger logger= LoggerFactory.getLogger(HelloConsumerController.class);
  4. @Resource
  5. private HelloService helloService;
  6. @RequestMapping("/consume")
  7. public String helloConsume(){
  8. logger.info("hello consumer 远程调用:{}",helloService.hello());
  9. logger.info("hello consumer 本地调用:{}","hello consumer");
  10. return "hello consumer";
  11. }
  12. }

**********************

使用测试

  1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70][]

********************

调用hello-conusmer的/consume接口:

hello-service

  1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70 1][]

hello-consumer

  1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzMTYyNQ_size_16_color_FFFFFF_t_70 2][]

hello-consumer,e5282f311fdc139b,e5282f311fdc139b,false

hello-consumer:应用的名称,该值为spring.application.name的值

e5282f311fdc139b:tranceId的值,同一个请求链路的id值相同

e5282f311fdc139b:spanId,链路中的一个基本工作单元

false:默认使用抽样采集,false表示该日志不输出到相关采集服务器中,如zipkin

发表评论

表情:
评论列表 (有 0 条评论,35人围观)

还没有评论,来说两句吧...

相关阅读

    相关 服务跟踪Sleuth

    什么是微服务跟踪 分布式跟踪系统有Zipkin,Htrace等,它可以帮助我们收集一些由服务实时产生的数据(主要是日志),通过这些数据可以分析出分布式系统的健康状态、服务