如何正确使用Flink Connector?( 八 )

分别用红框框出如何构造一个 Source sink Function 。 Flink 提供了现成的构造FlinkKafkaConsumer、Producer 的接口 , 可以直接使用 。 这里需要注意 , 因为 kafka 有多个版本 , 多个版本之间的接口协议会不同 。 Flink 针对不同版本的 kafka 有相应的版本的 Consumer 和 Producer 。 例如:针对 08、09、10、11 版本 , Flink 对应的 consumer 分别是 FlinkKafkaConsumer 08、09、010、011 , producer 也是 。

1.Flink kafka Consumer

  • 反序列化数据

因为 kafka 中数据都是以二进制 byte 形式存储的 。 读到 Flink 系统中之后 , 需要将二进制数据转化为具体的 java、scala 对象 。 具体需要实现一个 schema 类 , 定义如何序列化和反序列数据 。 反序列化时需要实现 DeserializationSchema 接口 , 并重写 deserialize(byte[
message) 函数 , 如果是反序列化 kafka 中 kv 的数据时 , 需要实现 KeyedDeserializationSchema 接口 , 并重写 deserialize(byte[
messageKey byte[

推荐阅读