当前位置: 首页 > 知识库问答 >
问题:

Spring cloud Sleuth启动一个新跟踪,而不是在单个跟踪中继续跨度

柳宪
2023-03-14

我有4个Spring启动应用程序(A,B,C和D)。事务的生命周期如下:

  1. 应用程序A是一个kafka流应用程序,它最终产生一个主题,该主题由应用程序B使用。
  2. 应用程序B然后使用@KafkaListener从主题中消费,进行一些处理,然后使用Spring的jmsTemboard生成IBMMQ队列。
  3. 应用程序C,它是@JMSListener,从上面的队列中消耗并使用Spring的JMST模板生成到另一个队列。
  4. 应用程序D也是@JmsListener从上面的队列中消耗,然后产生一个kafka主题,该主题再次被应用程序A消耗

现在,对于单个事务,我希望跨所有四个应用程序进行单个跟踪,但相反,我得到了

  1. 一个从应用程序A到应用程序B的跟踪(从应用程序B到IBM MQ)
  2. 一个从应用程序C开始并在应用程序A结束的跟踪

我会上传照片来展示拉链的跨度,但出于某种原因,我不能这样做。

所有上述应用程序都是Spring Boot应用程序,它们利用Spring云侦察来产生事务跟踪。我依靠Spring引导的自动配置,这些是我在所有应用程序中设置的属性:

  zipkin:
   enabled: ${ZIPKIN_ENABLED:false}
   sender:
    type: kafka
   baseUrl: ${ZIPKIN_URL:http://localhost:9411}
   service:
    name: ${spring.application.name}
 sleuth:
  messaging:
   kafka:
    enabled: true
   jms:
    enabled: true

我无法理解这里到底发生了什么。为什么跨距分散在两条记录道而不是一条记录道上?

我使用的是SpringBoot2.3.3和SpringCloud依赖项Hoxton。SR8。

共有1个答案

乜璞瑜
2023-03-14

因此,应用程序B没有传递头。原来队列uri的属性targetClient设置为1。uri类似于

queue:///DESTINATION_QUEUE?targetClient=1

到目前为止,我还不是IBM的MQ专家,但是留档声明将此属性设置为1意味着消息不包含MQRFH2标头。我将其切换为0,瞧,所有跨度都到位了...

 类似资料:
  • 跟踪行为控制着 Entity Framework Core 是否会在其变更跟踪器里维持实体实例的信息。如果实体是被跟踪的,任何检测到的该实体的变更都将在 SaveChanges() 时持久化到数据库中。Entity Framework Core 还会对已跟踪的、之前已加载到 DbContext 实例中的查询和实体进行相互的导航属性装配。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。

  • 你们可能都知道,苹果在手机和台式机上的Safari 11中引入了24小时后删除第三方cookie的功能,称为智能跟踪预防ITP。 这迫使谷歌改变他们的AdWords像素,使用第1方而不是第三方cookie。 我不确定在以下情况下该怎么做: 登录页是domain1。com与domain2的链接。com/register,用户可以在其中填写表单并进行转换,然后加载domain2。com/谢谢 在过去,

  • 情境:我使用谷歌标签管理器在多站点网络上建立了谷歌分析(GA-Universal)。有一个GTM容器,每个网站都有自己的GA属性。我使用了一个GTM变量来引用所有GA属性。我能够跟踪跨域会话。在测试中,我能够在同一会话/客户端ID下跨多个域跟踪用户的会话。 问题:我被下一步该做什么所困扰。我想创建一些目标和视图,跟踪用户在我的网站上的旅程,并测量通常的统计数据(反弹、积分转换等)。然而,我不知道从

  • Trace 事件提供了一种机制,可以集中由 V8,Node 核心, 以及用户代码生成的跟踪信息。 启动 Node.js 应用时添加 --trace-events-enabled 标记,可以启用 Tracing. 可以通过在 --trace-event-categories 标记后跟一个用逗号分隔的类别名称列表, 来指定特定的跟踪记录集合。 node 和 v8 默认启用。 node --trace-

  • 跟踪配置指定了Envoy使用的HTTP跟踪器的全局设置。在服务的顶层配置上定义。未来,Envoy可能会支持其他跟踪器,但现在HTTP跟踪器是唯一支持的跟踪器。 { "http": { "driver": "{...}" } } http (optional, object) 提供HTTP跟踪器的配置。 driver (optional, object) 提供处理跟踪和创建span

  • 概述 分布式跟踪使开发人员可以在大型面向服务的体系结构中获得调用流的可视化。在理解序列化,并行性和延迟来源方面,这是非常宝贵的。Envoy支持系统范围与跟踪相关的三个功能: 请求ID生成:Envoy将在需要时生成UUID并填充x-request-id HTTP头。 应用程序可以转发x-request-id头以进行统一日志记录以及跟踪。 外部跟踪服务集成:Envoy支持可插入的外部跟踪可视化提供程序