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

JSON MessageHeaders with HeaderMode=原始

仇承志
2023-03-14

我有一个Spring Cloud Stream(SCS)Kafka制作应用程序,配置了Sleuth进行跟踪。我正在尝试发布一个spring消息“GenericMessage”(即MessageHeaders负载),它需要由以下两个用户使用:

  • SCS消费者(应继续自动添加到MessageHeaders的跟踪)

headerMode=embeddedHeaders(默认设置):消息头中的跟踪条目在消息发布之前由EmbeddedHeaderUtils预先添加到消息中。我的非java消费者无法处理这个问题,因为EmbeddedHeaderUtils没有序列化为纯JSON,即。

?\n无效的json-Headers{payload}

headerMode=raw时:根本不发送MessageHeaders,只序列化有效负载。i、 e.<代码>{有效载荷}

我真的只想在创建时发布整个GenericMessage,包括Sleuth添加的跟踪范围ID,即:

{"标头":{"id":"x","trac":"y","spans":"z"},"有效负载":{...}}

除了为SCS用户发布一个主题和另一个仅使用有效负载的主题之外,还有其他方法可以实现这一点吗?

共有1个答案

朱伯寅
2023-03-14

因此,将该消息发布为出站消息的有效负载:

return MessageBuilder.withPayload(message).build();

这样,您的消息将被序列化为有效负载,在正确反序列化并将有效负载转换为消息后,您可以访问所需的标头。

 类似资料:
  • 问题内容: 有没有办法从获取原始/原始JSON值? 问题: 现在是,但是我需要原始字符串。 有没有办法获得这个原始价值?另外,我无法更改创建方式(例如更改设置),因为它作为参数传递给我的课程… (参考:原始的NJsonSchema问题) 问题答案: 您无法获取原始字符串,无法识别日期字符串并将其转换为自身内部的结构。如果您这样做,则可以看到以下内容: 但是,您可以通过执行以下操作以ISO 8601

  • Rust通过限制智能指针的行为保障了编译时安全,不过仍需要对指针做一些额外的操作。 *const T和*mut T在Rust中被称为“裸指针”。它允许别名,允许用来写共享所有权的类型,甚至是内存安全的共享内存类型如:Rc<T>和Arc<T>,但是赋予你更多权利的同时意味着你需要担当更多的责任: 不能保证指向有效的内存,甚至不能保证是非空的 没有任何自动清除,所以需要手动管理资源 是普通旧式类型,也

  • "prototype" 属性在 JavaScript 自身的核心部分中被广泛地应用。所有的内置构造函数都用到了它。 首先,我们将看看原生原型的详细信息,然后学习如何使用它为内建对象添加新功能。 Object.prototype 假如我们输出一个空对象: let obj = {}; alert( obj ); // "[object Object]" ? 生成字符串 "[object Object]

  • enum 原始值 枚举成员可以用相同类型的默认值预先填充(称为原始值) e.g. enum ASCIIControlCharacter: Character { case tab = "\t" case lineFeed = "\n" case carriageReturn = "\r" } 当在操作存储证书或字符串原始值枚举的时候, 不必显示的给每一个成员都分配一个原始

  • 原型链是一种机制,指的是 JavaScript 每个对象都有一个内置的 __proto__ 属性指向创建它的构造函数的 prototype(原型)属性。原型链的作用是为了实现对象的继承,要理解原型链,需要先从函数对象、constructor、new、prototype、__proto__ 这五个概念入手。 函数对象 前面讲过,在 JavaScript 里,函数即对象,程序可以随意操控它们。比如,可

  • 主要内容:1.迪米特法则,2.高内聚,3.松耦合,4.代码,5.总结1.迪米特法则 迪米特法则的英文翻译是:Law of Demeter,缩写是 LOD。 单从这个名字上来看,我们完全猜不出这个原则讲的是什么。不过,它还有另外一个更加达意的名字,叫作最小知识原则,英文翻译为:The Least Knowledge Principle。 它不像 SOLID、KISS、DRY 原则那样,人尽皆知,但它却非常实用。利用这个原则,能够帮我们实现代码的“高内聚、松耦合” “

  • 主要内容:1.Kiss原则,2.Kiss原则意义,3.Kiss原则落地1.Kiss原则 Keep It Simple and Stupid Keep It Short and Simple Keep It Simple and Straightforward. 2.Kiss原则意义 KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等

  • 主要内容:1.DRY 原则,2.实现逻辑重复,3.功能语义重复,4.代码执行重复,5.注释重复,6.数据重复,7.提高代码复用性1.DRY 原则 它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 很多人对这条原则存在的误解。实际上,重复的代码不一定违反 DRY 原则,而且。 DRY不是只代码重复,而是“知识”的重复,意思是指业务逻辑。例如由于沟通不足,两个程序员用两种不同的方法实现同样功能的校验。 2.实现逻辑