2017-03-06 41 views
-1

我是Spring云Stream和Kafka的新手,我正在寻找一个从kafka主题中使用json消息的好例子。有没有一个很好的例子,用于消费通用json消息的Spring云流kafka活页夹

感谢

+0

即使这是downvoted并标记为脱离主题,答案解决了我的问题。我讨厌这个社区总是专注于关闭和减少不重要的问题,因为他们是这样的强硬的堆栈溢出成员。 stackoverflow的要点是帮助程序员和这个答案帮助我解决了一个问题,我试图解决5个小时左右...... – Maxincredible52

回答

4

您可以参考examples from spring-cloud-stream team(沉&源项目)

为了让应用程序运行有三种情况。

如果消费者和生产者都是弹簧云流(SCS)的应用程序,你只需要设置content-typeapplication/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默认添加嵌入在净荷头,所以你需要禁用该行为将headerModeraw连同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不支持原标题为字符串(there is a issue for that),所以你需要发送有效负载作为字节

#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()); 
相关问题