以avro格式使用来自Apache Kafka的消息

时间:2019-03-04 05:09:38

标签: apache spring-boot java-8 apache-kafka spring-kafka

我想通过使用spring-Kafka库的spring boot配置的使用者来使用来自我的Kafka代理的消息,其来源是JDBC连接器,它负责从MySQL数据库中提取消息,这些消息需要被使用

下面我附加了application.yml文件

server:
  port: 9000
spring:
  kafka:
    consumer:
      bootstrap-servers: localhost:9092
      group-id: group_id
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      bootstrap-servers: localhost:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

消费者-

  @KafkaListener(topics = "Sample-Topic", groupId = "group_id")
    public void consume(String message) throws IOException {
        System.out.println(message);
    }

主题中的消息与我使用JDBC连接器时一样以Avro格式存储。

我得到的是加密输出,而不是JSON,某些输出消息只是纯字符串。

1 个答案:

答案 0 :(得分:0)

您需要使用Avro反序列化器代替StringDeserializer