本文介紹了如何在Kafka中使用屬性文件映射類型的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有兩個(gè)Spring Boot應(yīng)用程序。我正在嘗試以一種消費(fèi)者可以接收生產(chǎn)者發(fā)送的消息的方式映射到應(yīng)用程序.Properties文件中。我想補(bǔ)充的是,我使用的是CustomMessage:
public class CustomMessage {
private LocalDateTime timestamp;
private Integer sensor_id;
private Double measurement_value;
// getters and setters
}
生產(chǎn)者的我的應(yīng)用程序.properties文件:
# other properties ( I use CloudKarafka )
spring.kafka.producer.key-serializer= org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer= org.springframework.kafka.support.serializer.JsonSerializer
spring.kafka.producer.properties.spring.json.type.mapping=customMessage:assignment2.kafka.CustomMessage,customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
對于消費(fèi)者:
spring.kafka.consumer.key-deserializer= org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer= org.springframework.kafka.support.serializer.JsonDeserializer
spring.kafka.consumer.properties.spring.json.type.mapping=customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage, customMessage:assignment.kafka.CustomMessage
我不確定type.map應(yīng)該如何完成。以這種方式呈現(xiàn)時(shí),我得到以下錯(cuò)誤:
Failed to construct kafka consumer
Failed to load: assignment.kafka.CustomMessage for customMessage
它也無法構(gòu)造Producer。
推薦答案
映射是從類到令牌(生產(chǎn)者端),令牌到類(消費(fèi)者端)。
您正在將兩種不同類型映射到同一令牌。
制片人:
customMessage:assignment2.kafka.CustomMessage,
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
消費(fèi)者:
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage,
customMessage:assignment.kafka.CustomMessage
假設(shè)生產(chǎn)者的類是assignment2.kafka.CustomMessage
,您只需要
customMessage:assignment2.kafka.CustomMessage
在生產(chǎn)者端和
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
在消費(fèi)者端。
這篇關(guān)于如何在Kafka中使用屬性文件映射類型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,