java—SpringCloudStreamKafka活页夹有没有一个好的例子来使用通用json消息

jbose2ul  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(433)

**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

三年前关门了。
改进这个问题
我对springcloudstream和kafka还不熟悉,我正在寻找一个好的示例来使用来自kafka主题的json消息。
谢谢

fjaof16o

fjaof16o1#

您可以参考springcloudstream团队的示例(sink和source项目)
要让应用程序运行,有三种方案。
如果消费者和生产者是springcloudstream(scs)应用程序,您只需设置 content-type 作为 application/json .


# Specific channel

spring.cloud.stream.bindings.<channelName>.consumer.contentType=application/json

# For all channels

spring.cloud.stream.default.contentType=application/json

第二种情况是,生产者不是scs,消费者是scs,默认情况下,scs添加嵌入到负载中的头,因此需要禁用该行为 headerMode 作为 raw 以及 contentType .


# Specific channel

spring.cloud.stream.bindings.<channelName>.consumer.headerMode=raw

# For all channels

spring.cloud.stream.default.consumer.headerMode=raw

在第三个场景中是scs生产者而不是scs消费者,在这种情况下,您需要使用 application/octet-stream 作为一个 contentType 因为scs不支持字符串的原始头(这有一个问题),所以您需要以字节的形式发送负载


# Properties

spring.cloud.stream.default.contentType=application/octet-stream
spring.cloud.stream.default.producer.headerMode=raw

//Java
byte[] payload = jacksonObjectMapper.writeValueAsBytes(entity);
return channel.send(MessageBuilder.withPayload(payload).build());

相关问题