使用Java的Apache Flink中的通用协议缓冲区反序列化程序
场景:阿帕奇·弗林克、卡夫卡、协议缓冲区数据消费者
数据源是协议缓冲区格式的卡夫卡主题(多个主题:主题#1、主题#3、主题#3)。 消费者是Apache Flink消费者。每个主题都有一个独特的protobuf定义
List<String> topicList = Arrays.asList("topic#1,topic#2,topic#3".split(","));
inputStream = env.addSource(new FlinkKafkaConsumer[ProtobufDeserializationSchema](topicList, new ProtobufDeserializationSchema(), properties));
我试图在Apache Flink中开发一个通用的数据摄取作业,将卡夫卡的数据摄取到数据库中
如何为Apache Flink实现通用protobuf反序列化程序?我正在寻找实现,将卡夫卡主题与protobuf定义联系起来进行反序列化
最初的方法是将字节数组引入Flink数据流,然后根据Kafka主题名确定protobuf定义,以反序列化map函数中的消息。我怎样才能用通用的方式来做呢
# 1 楼答案
flink statefun包含一个可能有用的通用protobuf(反)序列化程序
https://github.com/apache/flink-statefun/blob/release-3.0/statefun-flink/statefun-flink-common/src/main/java/org/apache/flink/statefun/flink/common/protobuf/ProtobufSerializer.java