首页 文章

Spring Kafka JsonSerializer用法

提问于
浏览
4

我想按照这里的说明操作:

http://docs.spring.io/spring-kafka/docs/1.1.1.RELEASE/reference/htmlsingle/#_serialization_deserialization_and_message_conversion

设置一个KafkaTemplate,它可以序列化并发送我拥有的一些简单的Java POJO . 但我发现文档含糊不清,特别是这一部分:

为此,Spring for Apache Kafka还提供了基于Jackson JSON处理器的JsonSerializer / JsonDeserializer实现 . 当JsonSerializer非常简单并且只允许将任何Java对象写为JSON字节时[] ...尽管从低级Kafka Consumer和Producer的角度来看,Serializer / Deserializer API非常简单和灵活,但它在Messaging上是不够的级别,其中存在KafkaTemplate和@KafkaListener . ...可以直接将MessageConverter注入KafkaTemplate实例,并通过@KafkaListener.containerFactory()属性的AbstractKafkaListenerContainerFactory bean定义注入

所以我的问题是:

  • 我的KafkaTemplate的类型是什么?是 KafkaTemplate<String, Object> 吗?或者是 KafkaTemplate<String, String>

  • 什么是我的Serializer类?是 StringSerializer ,还是 JsonSerializer

  • 创建KafkaTemplate bean时是否使用 kafkaTemplate.setMessageConverter(new StringJsonMessageConverter())

抱歉,如果这些是愚蠢的问题 - 我正在试图理解正确的设置方式,而不是“黑客攻击直到它有点工作” .

1 回答

  • 4
    • <String, Object>

    • JsonSerializer

    • 消息转换器仅在使用带有 Message<?> 的发送时使用,而 JsonSerializer 则应使用默认值 .

相关问题