在同一个 Spring Kafka 应用程序中读取 JSON 和字符串

Reading JSON and String in same Spring Kafka application

好吧,我有一个从 Kafka 读取 2 个主题的应用程序,第一个只是一个普通字符串,第二个主题是 JSON 应该转换为 DTO。

如果我使用 RecordMessageConverter:

 @Bean
 public RecordMessageConverter converter() {
        return new StringJsonMessageConverter();
    }

第一个主题(只是字符串)引发了将 String 转换为 DTO 的异常,因为 StringJsonMessageConverter 尝试这样做。但是第二个题目正常。

任何提示,我该如何解决?

使用自定义 deserializer of Object and use this constructor. For key deserializer, your case perhaps StringDeserializer would suffice. In the deserializer, you could override the deserialize 方法并根据主题名称确定要执行的反序列化类型。在处理过程中,即在调用 poll 之后确定 Object 的类型并进行相应的处理。

其他方式,当然是分别使用两个消费者。