如何在 Kafka 中使用属性文件映射类型
How to map types using properties file in Kafka
我有 2 个 spring 启动应用程序。我试图以消费者可以接收生产者发送的消息的方式映射 application.properties 文件。我想补充一点,我正在使用 CustomMessage:
public class CustomMessage {
private LocalDateTime timestamp;
private Integer sensor_id;
private Double measurement_value;
// getters and setters
}
我的 application.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.mapping 应该如何完成。以这种方式呈现,我得到以下错误:
Failed to construct kafka consumer
Failed to load: assignment.kafka.CustomMessage for customMessage
也是构建producer失败
映射是从 class 到令牌(生产者端)和令牌到 class(消费者端)。
您正在将 2 个不同的类型映射到同一个标记。
制作人:
customMessage:assignment2.kafka.CustomMessage,
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
消费者:
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage,
customMessage:assignment.kafka.CustomMessage
假设制作人的class是assignment2.kafka.CustomMessage
你只需要
customMessage:assignment2.kafka.CustomMessage
在制作方和
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
在消费者方面。
我有 2 个 spring 启动应用程序。我试图以消费者可以接收生产者发送的消息的方式映射 application.properties 文件。我想补充一点,我正在使用 CustomMessage:
public class CustomMessage {
private LocalDateTime timestamp;
private Integer sensor_id;
private Double measurement_value;
// getters and setters
}
我的 application.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.mapping 应该如何完成。以这种方式呈现,我得到以下错误:
Failed to construct kafka consumer
Failed to load: assignment.kafka.CustomMessage for customMessage
也是构建producer失败
映射是从 class 到令牌(生产者端)和令牌到 class(消费者端)。
您正在将 2 个不同的类型映射到同一个标记。
制作人:
customMessage:assignment2.kafka.CustomMessage,
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
消费者:
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage,
customMessage:assignment.kafka.CustomMessage
假设制作人的class是assignment2.kafka.CustomMessage
你只需要
customMessage:assignment2.kafka.CustomMessage
在制作方和
customMessage:ro.tuc.ds2020.kafkaconsumer.CustomMessage
在消费者方面。