2017-03-06 37 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()); 
相關問題