如何在Kafka中使用属性文件映射类型 [英] How to map types using properties file in Kafka

查看:40
本文介绍了如何在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中使用属性文件映射类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆