前言

SpringCloud 是微服务中的翘楚,最佳的落地方案。

在一个完整的微服务架构项目中,服务之间的调用是很复杂的,当其中某一个服务出现了问题或者访问超时,很

难直接确定是由哪个服务引起的,所以就有了 Spring Cloud Sleuth 链路跟踪。通过它,我们就可以很清楚直观

的了解每一个服务请求经过了哪些服务,用时多久,谁依赖谁或者被谁依赖。

代码

  • product-service

          
              <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    • service层

    @Override
    public Product findById(int id) {
    logger.info("product service");
    return daoMap.get(id);
    }
  • order-service

        <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    • web层

         @RequestMapping("/save")
    @HystrixCommand(fallbackMethod = "saveOrderFail")
    public Object save(@RequestParam("user_id") int userId, @RequestParam("product_id") int productId, HttpServletRequest request) {
    // String token = request.getHeader("token");
    // String cookie = request.getHeader("cookie");
    logger.info("order service");
    // System.out.println(token);
    // System.out.println(cookie);
    Map<String, Object> data = new HashMap<>();
    data.put("code", 0);
    data.put("data", productOrderService.save(userId, productId));
    return data;
    }
  • 执行结果

    order

  • 2019-10-22 20:12:33.130  INFO [order-service,bc9f3fc07473127b,4069d9f942d534fe,false] 15784 --- [derController-2] c.t.o.controller.OrderController         : order service
  • product

    2019-10-22 20:12:33.138  INFO [product-service,bc9f3fc07473127b,88a890468bdb7e73,false] 15076 --- [nio-8772-exec-5] c.t.p.service.impl.ProductServiceImpl    : product service

    总结:

    1、第一个值,spring.application.name的值

    2、第二个值,96f95a0dd81fe3ab ,sleuth生成的一个ID,叫Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID

    3、第三个值,852ef4cfcdecabf3、spanid 基本的工作单元,获取元数据,如发送一个http

    4、第四个值:false,是否要将该信息输出到zipkin服务中来收集和展示。

最新文章

  1. UITableViewCell 的附件类型 accessoryType 选中、详情、箭头
  2. 1208PHP语句
  3. JVM-操作码助记符
  4. laravel 数据库迁移
  5. 深入理解c++构造函数, 复制构造函数和赋值函数重载(operator=)
  6. java web中jsp,action,service,dao,po分别是什么意思和什么作用
  7. leetcode-99 Recover_Binary_Search_Tree
  8. CentOS学习笔记--程序管理
  9. POJ3714+最近点对
  10. Inno Setup教程
  11. 如何参与Hibernate-ORM项目
  12. R语言:利用caret包中的dummyVars函数进行虚拟变量处理
  13. 怎样使用自定义标签简化 js、css 引入?
  14. 关于Java泛型&quot;擦除&quot;的一点思考
  15. Linux常用文件操作命令
  16. Python爬虫初学者学习笔记(带注释)
  17. AtCoder Beginner Contest 049 &amp; ARC065 連結 / Connectivity AtCoder - 2159 (并查集)
  18. php利用OpenXML规范生成word,excel(pdf其他方法)
  19. ABP框架系列之二十五:(Embedded-Resource-Files-嵌入式资源文件)
  20. Nginx负载均衡配置调优

热门文章

  1. 4.7 if else-if
  2. Spring 梳理-webApplicationContext 与servletContext
  3. ajax跨域问题以及解决方案
  4. 《老师说的都对》第一次作业:OUC网上课程评价系统
  5. springcloud --- spring cloud sleuth和zipkin日志管理(spring boot 2.18)
  6. Openshift创建Router和Registry
  7. 【Java】登录验证码
  8. 大神都在用的yum源
  9. html5视频常用API接口
  10. idea破解版安装、配置jdk以及建立一个简单的maven工程