本文介紹了如何在Kafka中使用屬性文件映射類型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有兩個Spring Boot應用程序。我正在嘗試以一種消費者可以接收生產者發送的消息的方式映射到應用程序.Properties文件中。我想補充的是,我使用的是CustomMessage:
public class CustomMessage {
private LocalDateTime timestamp;
private Integer sensor_id;
private Double measurement_value;
// getters and setters
}
生產者的我的應用程序.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
對于消費者:
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應該如何完成。以這種方式呈現時,我得到以下錯誤:
Failed to construct kafka consumer
Failed to load: assignment.kafka.CustomMessage for customMessage
它也無法構造Producer。
推薦答案
映射是從類到令牌(生產者端),令牌到類(消費者端)。
您正在將兩種不同類型映射到同一令牌。
制片人:
customMessage:assignment2.kafka.CustomMessage,
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
消費者:
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage,
customMessage:assignment.kafka.CustomMessage
假設生產者的類是assignment2.kafka.CustomMessage
,您只需要
customMessage:assignment2.kafka.CustomMessage
在生產者端和
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
在消費者端。
這篇關于如何在Kafka中使用屬性文件映射類型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,