• 服务的追踪-Sleuth


    1 引言

    在整个微服务架构中,微服务很多,一个请求可能需要调用很多很多的服务,最终才能完成一个功能,如果说,整个功能出现了问题,在这么多的服务中,如何去定位到问题的所在点,出现问题的原因是什么。

    • Sleuth可以获得到整个服务链路的信息。
    • Zipkin通过图形化界面去看到信息。 运维 mq es
    • Sleuth将日志信息存储到数据库中。

    2 Sleuth的使用

    导入依赖

    >
        >org.springframework.cloud>
        >spring-cloud-starter-sleuth>
    >
    
    • 1
    • 2
    • 3
    • 4

    编写配置文件

    logging:
      level:
        org.springframework.web.servlet.DispatcherServlet: DEBUG
    
    • 1
    • 2
    • 3

    [OPEN-USER-v1,ebb3cc2e66f86a7a,bd37765364975051,true]

    SEARCH:服务名称
    ebb:总链路id
    bd3:当前服务的链路id
    false:不会将当前的日志信息,输出其他系统中
    
    • 1
    • 2
    • 3
    • 4

    3 Zipkin的使用

    搭建Zipkin的web工程 https://zipkin.io/

    version: "3.1"
    services:
      zipkin:
       image: daocloud.io/daocloud/zipkin:latest
       restart: always
       container_name: zipkin
       ports:
         - 9411:9411
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    http://lp:port/zipkin
    http://162.14.64.72:9411/zipkin/ 访问地址

    >
        >org.springframework.cloud>
        >spring-cloud-starter-zipkin>
    >
    
    • 1
    • 2
    • 3
    • 4

    编写配置文件

    #指定服务的名称
    spring:
      sleuth:
        sampler:
          probability: 1   # 百分之多少的sleuth信息需要输出到zipkin中(0.5  0.01)
      zipkin:
        base-url: http://192.168.199.109:9411/  # 指定zipkin的地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    测试

    4 整合RabbitMQ

    导入RabbitMQ依赖

     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4

    修改配置文件

    spring:
      zipkin:
        sender:
          type: rabbit
          
          
          
    rabbitmq:
        host: 162.14.64.72
        port: 5672
        username: test
        password: test
        virtual-host: test      
          
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    修改Zipkin的信息

    version: "3.1"
    services:
      zipkin:
       image: daocloud.io/daocloud/zipkin:latest
       restart: always
       container_name: zipkin
       ports:
         - 9411:9411
       environment:
         - RABBIT_ADDRESSES=162.14.64.72:5672
         - RABBIT_USER=test
         - RABBIT_PASSWORD=test
         - RABBIT_VIRTUAL_HOST=test
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5 Zipkin存储数据到ES oss fastdfc Hadoop 磁盘阵列

    重新修改zipkin的yml文件

    version: "3.1"
    services:
      zipkin:
       image: daocloud.io/daocloud/zipkin:latest
       restart: always
       container_name: zipkin
       ports:
         - 9411:9411
       environment:
         - RABBIT_ADDRESSES=192.168.199.109:5672
         - RABBIT_USER=test
         - RABBIT_PASSWORD=test
         - RABBIT_VIRTUAL_HOST=/test
         - STORAGE_TYPE=elasticsearch
         - ES_HOSTS=http://192.168.199.109:9200
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    Qt中的Resource
    如何实现双击弹出提示并刷新图片列表的功能?
    C++单例模式与工厂模式
    TCP链接为什么要必须要四次挥手,为什么链接三次握手即可?
    UE——导航系统(NavigationSystem)
    C# 如何将表格数据转成实体
    ORACLE的分区(一)
    [Java]快速入门二叉树,手撕相关面试题
    LeetCode764,每日一题20221109,最大加号标志
    IceRPC之依赖注入>快乐的RPC
  • 原文地址:https://blog.csdn.net/yc_Cabbage/article/details/126395097