kafka-反序列化consumer中的对象

ngynwnxp  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(580)

我们正在考虑在我们的消息传递中使用kafka,我们的应用程序是使用spring开发的。所以,我们计划用SpringKafka。
生产者将消息作为hashmap对象放入队列。我们有json序列化程序,我们假设Map将被序列化并放入队列中。这是生产者配置。

spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer:
        key-serializer: org.springframework.kafka.support.serializer.JsonSerializer
        value-serializer: org.springframework.kafka.support.serializer.JsonSerializer

另一方面,我们有一个侦听器,它侦听生产者发布消息的同一主题。以下是使用者配置:

spring:
   kafka:
       consumer:
            group-id: xyz
            key-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
            value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer

我们的侦听器方法:

public void listener(SomeClass abx)

我们希望json将被反序列化,并生成一个类型为“someclass”的对象。但显然,它抛出了反序列化异常。
我们看到的文章很少,建议是这样做:

@Bean
  public ConsumerFactory<String, Car> consumerFactory() {
    return new DefaultKafkaConsumerFactory<>(consumerConfigs(), new StringDeserializer(),
        new JsonDeserializer<>(Car.class));
  }

我们不想写一些代码来创建反序列化程序。有什么样板文件我们遗漏了吗?任何帮助都将不胜感激!!

9nvpjoqh

9nvpjoqh1#

请参阅引导文档。特别地:
您还可以按如下方式配置spring kafka jsondeserializer: spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer spring.kafka.consumer.properties.spring.json.value.default.type=com.example.Invoice spring.kafka.consumer.properties.spring.json.trusted.packages=com.example,org.acme

相关问题