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

Sleuth Brave标头与JMS规范不兼容

百里京
2023-03-14

我在Spring集成项目中使用Sleuth在JMS消息中传递跟踪头。IBM MQ用于队列管理器。该配置在功能上运行良好。然而,所有勇敢的头X-B3-*都与JMS规范不兼容?当IBM MQ客户机库抛出关于此的警告时-

警告消息:JMSCC0049:属性名'X-B3-Sample'不是有效的Java(tm)标识符。

JMS有效负载:2018-03-13 11:54:42.919信息[domain batch,d5a9e59728d0846a,954264c0e98a448b,false]141252---[ask-scheduler-2]c.l.p.模块。生意。BackendServiceClient:Message:GenericMessage[payload=2018-03-13T11:54:42.856,headers={JMS_IBM_Character_Set=UTF-8,JMS_destination=queue:///DEV.QUEUE.1,JMS_IBM_Encoding=273,JMS_timestamp=1520956482869,JMS_IBM_putapptype=28,spanId=9a20699cdc50f7e9,JMS_IBM_Format=MQSTR,JMSXDeliveryCount=1,X-B3-Sampled=0,JMS_IBM_PutTime=15544287,X-B3-TraceId=D5A5A9E59728D0846A,id=d40cfbec-5dce-a8cd-0d96-DA0E3761459,JMS_messageId=2024DU=452;=455A3025AA038;,JMSXUserID=app,X-B3-ParentSpanId=385f47b14a627448,优先级=4,JMSXAppID=BackendServiceApplication,spanTraceId=d5a9e59728d0846a,spanParentSpanId=385f47b14a627448,nativeHeaders={spanTraceId=[d5a9e59728d0846a],spanId=[9a20699cdc50f7e9],spanParentSpanId=[385f47b14a627448],spanSampled=[0],[0],[0],[jms_reDelivereded=false],jms=false,jms_=20180313,X-B3-SpanId=9a20699cdc50f7e9,spanSampled=0}]

侦探中是否有选项可以更改JMS的标题命名约定?类似于行李命名约定?希望我没有遗漏留档中的某些内容。

编辑:添加以下日志级别配置来抑制警告异常

logging:
  level:
    org.springframework.integration.jms.DefaultJmsHeaderMapper: ERROR

共有2个答案

祁渊
2023-03-14

https://github.com/openzipkin/brave/issues/584是《勇敢》中较长的主题。这很不幸。

幸运的是,我们最近改变了B3“跟踪上下文”的继任者的格式,它不再使用连字符,所以不会让JMS难过。https://github.com/w3c/distributed-tracing/tree/master/trace_context注意:这还不是规范的实现版本,但无论如何你都可以遵循它。

邹京
2023-03-14

我认为这些警告可以忽略。我们正在设置X-B3-采样和spanSample头(请https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/MessageHeaderPropagation.java查看)。第一个不兼容,第二个兼容JMS

 类似资料:
  • 处理注解 在 Servlet 2.5 中, metadata-complete 只影响在部署时的注释扫描。 web-fragments 的概念在 servlet 2.5 并不存在。然而在 servlet 3.0 和之后,metadata-complete 影响扫描所有的在部署时指定部署信息和 web-fragments 注释。注释的版本的描述符必须不影响你扫描在一个web应用程序。除非 metad

  • 有没有人知道Java10和JVM10规范的版本与以前的版本不同?对于Java8和Java9,有不同的规范,很难看到有什么变化。

  • PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。

  • 这本书是一个 教程。它旨在帮助你由浅入深掌握 JavaScript 这门语言。但是,当你已经熟悉了这门语言的基础知识,你就会需要其他资料。 规范 ECMA-262 规范 包含了大部分深入的、详细的、规范化的关于 JavaScript 的信息。这份规范明确地定义了这门语言。 但正因其规范化,对于新手来说难以理解。所以,如果你需要关于这门语言细节最权威的信息来源,这份规范就很适合你(去阅读)。但它并不

  • 我们什么时候应该在HttpRequest estMessage对象中使用标头而不是HttpClient中的标头?? 我们需要添加授权(总是在变化)和一些自定义标头(总是在变化) 问题 > 首选哪种方法 我是否应该向HttpClient添加公共头(所有请求都相同),并向HttpRequestMessage对象添加基于请求的头??

  • 问题内容: 这是在我的Angular代码中正常工作的ES5函数: 我想将其转换为ES6箭头功能 但是它给出了错误 ES6箭头功能是否与Angular不兼容? 编辑:我想也许Angular不能推断出该名称,因此无法注入它,但随后我将其记录到控制台,并确实显示了它: 问题答案: 正确。您的AngularJS版本与使用$ injector的箭头功能不兼容。 这主要是因为AngularJS 1.4.6使用