需求说明:

我要实现的需求是前端会将页面的pageId放到request heander中,后端会将pageId保存到链路信息中,这样以后就可以查看某个页面上有多少个请求了(链路展示端没用到zipkin,是自定义前端页面)。

实现方式:

通过研究sleuth的源码,发现sleuth已经提供了这样的方法了,我们只需要配置一下就好了,配置方法如下:

1,配置文件:红色部分

spring:
    zipkin:
        sender: 
            type: kafka
        enabled: true
        kafka:
            topic: zipkin
    sleuth:
        propagation:
            tag:
              whitelisted-keys:
                - page-id
        propagation-keys:
            - page-id
 
      sampler:
            #percentage: 1.0
            rate: 100
            #probability: 1.0
    kafka:
        bootstrap-servers: localhost:9092

2:代码更改

在SleuthTagPropagationAutoConfiguration中打个断点,如图:

启动时看看能进来不,我本地进不来,所有又在自己的工程中新建了一个类似的Configuration,如下图,把上面的注解去掉了

 

这样就配置好了,请求一下试试:

会发现产生的链路跟踪信息都包含了page-id,如下图:

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐