我想通过使用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,某些输出消息只是纯字符串。
答案 0 :(得分:0)
您需要使用Avro反序列化器代替StringDeserializer
。