Dynamic Flink动态地将流路由到不同的卡夫卡主题

Dynamic Flink动态地将流路由到不同的卡夫卡主题,dynamic,apache-kafka,routing,apache-flink,Dynamic,Apache Kafka,Routing,Apache Flink,Flink动态路由Kafka主题的解决方案是实现KeyedSerializationSchema并覆盖getTargetTopic,但KeyedSerializationSchema已被弃用,而KafkaSerializationSchema应被使用。此接口不提供getTargetTopic或类似的功能 那么,在Flink中,当getTargetTopic不再存在时,Kafka动态路由应该如何工作?KafkaSerializationSchema。序列化返回产品记录 此ProducerRecor

Flink动态路由Kafka主题的解决方案是实现KeyedSerializationSchema并覆盖getTargetTopic,但KeyedSerializationSchema已被弃用,而KafkaSerializationSchema应被使用。此接口不提供getTargetTopic或类似的功能


那么,在Flink中,当getTargetTopic不再存在时,Kafka动态路由应该如何工作?

KafkaSerializationSchema。序列化
返回
产品记录
ProducerRecord
包含一个主题。 你可以使用像这样的构造函数 插入主题

考虑到这一点,您只需创建一个类似

String dynamicTopic(T element, @Nullable Long timestamp)
而您的
KafkaSerializationSchema
实现只需要使用它

ProducerRecord<byte[], byte[]> serialize(T element, @Nullable Long timestamp){
    ...
    return new ProducerRecord(dynamicTopic(element, timestamp), aKey, aValue);
}
ProducerRecord序列化(T元素,@Nullable Long timestamp){
...
返回新的生产记录(dynamicTopic(元素、时间戳)、aKey、aValue);
}

绝对正确100%,非常简单。我昨天一定有一个捷径,不记得要创建一个ProducerRecord,你必须提供一个主题!