flink写入kafka(kafkaSink)

  • 1.所需依赖
  <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-connector-kafka-0.11_2.11</artifactId>
      <version>1.9.0</version>
    </dependency>
  • 2.获取kafkaSink
 /**
     * 生成 FlinkKafkaProducer  用于发送数据
     */
    private static FlinkKafkaProducer011<String> generateKafkaProducer() {
        // 创建FlinkKafkaProducer
        FlinkKafkaProducer011<String> kafkaProducer011 = new FlinkKafkaProducer011<>(
                "192.168.19.10:9092", "sun", new SimpleStringSchema()
        );
        // 自定义序列化 - 示例
        /*
        new KeyedSerializationSchema() {
            @Override
            public byte[] serializeKey(String element) {
                // 可以直接为null,也可以为String编码
                return null;
            }

            @Override
            public byte[] serializeValue(String element) {
                // 编码String为byte[]
                return element.getBytes(StandardCharsets.UTF_8);
            }

            @Override
            public String getTargetTopic(String element) {
                // 由源码可知,此处优先级最高,FlinkKafkaProducer011中传的topicid是默认值
                // 可以在此决定不同的数据发往到不同的topic
                return null;
            }
        };
        */

        return kafkaProducer011;
    }

你可能感兴趣的:(flink学习)