spring cloud stream支持json header?

问题描述 投票:0回答:1

我们所有的消费者应用都使用 spring-cloud-stream. 但是我们的一个大的生产者应用(传统的...)不能使用...。spring-cloud-stream 因为春秋版是 1.4.

我们试图发送消息与 kinesis 消息代理。我们想通过 kinesis 发送自定义的头信息,但是 kinesis 不支持发送头信息。所以我们决定在 body.

{
  "header": {
    ~~
  }
  "payload": {
    ~~
  }
}

但是... spring-cloud-stream 收不到头 body. 我们认为我们可以收到一个头在 body 使用 embeddedHeaders 选项(在spring-cloud-stream中)。

{channelName}:
    destination: local-event
    consumer:
        header-mode: embeddedHeaders

但是... ...它没有工作。

所以......有什么办法可以在 body? 或者我们必须选择其他方式?

apache-kafka spring-cloud spring-cloud-stream amazon-kinesis
1个回答
1
投票

嵌入的头值是单独的JSON片段,但它们使用二进制格式编码到消息中--见 嵌入式头程序.

将请求的头编码到有效载荷中,格式为

0xff, n(1), [ [lenHdr(1), hdr, lenValue(4), value] ... ]. 

0xff表示这种新的格式;n是头的数量(最大255个);对于每个头,名字长度(1个字节)之后是名字,然后是值的长度(int),之后是值(json)。

© www.soinside.com 2019 - 2024. All rights reserved.