我正在尝试按照此处的说明进行操作:
设置一个可以序列化和发送我拥有的一些简单 Java POJO 的 KafkaTemplate。但我发现文档含糊不清,尤其是这部分:
为此,Spring for Apache Kafka 还提供了基于 Jackson JSON 处理器的 JsonSerializer/JsonDeserializer 实现。当 JsonSerializer 非常简单并且只允许将任何 Java 对象编写为 JSON 字节 []
...
尽管从低级 Kafka Consumer 和 Producer 的角度来看,Serializer/Deserializer API 非常简单和灵活,但在存在 KafkaTemplate 和 @KafkaListener 的消息传递级别上还不够。
...
MessageConverter 可以直接注入 KafkaTemplate 实例,也可以通过 @KafkaListener.containerFactory() 属性的 AbstractKafkaListenerContainerFactory bean 定义注入
所以我的问题是:
- 我的 KafkaTemplate 是什么类型的?是
KafkaTemplate<String, Object>
吗?或者是KafkaTemplate<String, String>
吗? - 我的序列化程序类是什么?是
StringSerializer
,还是JsonSerializer
? - 我
kafkaTemplate.setMessageConverter(new StringJsonMessageConverter())
在创建 KafkaTemplate bean 时使用吗?
如果这些是愚蠢的问题,我深表歉意 - 我试图理解设置它的正确方法,而不是“破解它直到它有点工作”。