Mat*_*att 4 java serialization spring apache-kafka spring-kafka
我正在尝试按照此处的说明进行操作:
设置一个KafkaTemplate可以序列化并发送一些我拥有的简单Java POJO。但是我发现文档比较模糊和混乱,尤其是这部分:
为此,Spring for Apache Kafka还提供了基于Jackson JSON处理器的JsonSerializer / JsonDeserializer实现。当JsonSerializer非常简单,只允许将任何Java对象写为JSON字节[]
...
尽管从低级的Kafka消费者和生产者角度来看,Serializer / Deserializer API非常简单和灵活,但在存在KafkaTemplate和@KafkaListener的消息传递级别上,这还不够。
...
MessageConverter可以直接通过@ KafkaListener.containerFactory()属性的AbstractKafkaListenerContainerFactory bean定义注入到KafkaTemplate实例中。
所以我的问题是:
KafkaTemplate<String, Object>吗 还是KafkaTemplate<String, String>吗?StringSerializer不是JsonSerializer?kafkaTemplate.setMessageConverter(new StringJsonMessageConverter())创建我的KafkaTemplate bean时要使用?抱歉,如果这些都是愚蠢的问题,我想了解的是正确的设置方式,而不是“先对其进行破解,直到它起作用为止”。
<String, Object>
JsonSerializer
仅当使用Message<?>带有a 的发送时使用消息转换器,而使用a的发送JsonSerializer则应使用默认值。