Bootstrap

flink消费kafka的数据_Flink从kafka消息队列读取数据示例

1、示例环境

  • zookeeper-3.4.9

  • kafka_2.11

  • Java_1.8(java 8/11)

  • Flink1.10

KafKa安装启动可参考文章 Windows10搭建Kafka开发环境

2、创建一个Topic名为“test20201217”的主题

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test20201217

3、创建producer(生产者),生产主题的消息

kafka-console-producer.bat --broker-list localhost:9092 --topic test20201217

4、创建consumer(消费者),消费主题消息

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test20201217

5、编写Flink从kafka消息队列读取数据代码

5.1、工程中添加pom.xml依赖

     org.apache.flinkflink-connector-kafka-0.11_2.121.10.1
org.apache.flinkflink-statebackend-rocksdb_2.121.10.1
org.apache.flinkflink-table-planner_2.121.10.1
org.apache.flinkflink-table-planner-blink_2.121.10.1
org.apache.flinkflink-java1.10.1
org.apache.flinkflink-streaming-java_2.121.10.1
org.apache.flinkflink-clients_2.121.10.1

5.2、编写代码

    public static void main(String[] args) throws Exception {

// 创建流处理的执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

// 配置KafKa
//配置KafKa和Zookeeper的ip和端口
Properties properties = new Properties();
properties.setProperty("bootstrap.servers", "localhost:9092");
properties.setProperty("zookeeper.connect", "localhost:2181");
properties.setProperty("group.id", "consumer-group");
//将kafka和zookeeper配置信息加载到Flink的执行环境当中StreamExecutionEnvironment
FlinkKafkaConsumer011 myConsumer = new FlinkKafkaConsumer011("test20201217", new SimpleStringSchema(),
properties);
//添加数据源,此处选用数据流的方式,将KafKa中的数据转换成Flink的DataStream类型
DataStream stream = env.addSource(myConsumer);
//打印输出
stream.print();
//执行Job,Flink执行环境必须要有job的执行步骤,而以上的整个过程就是一个Job
env.execute("kafka sink test");
}

在idea启动main函数

07e840437cdab45def6493a2283eb098.png

6、生产者命令行窗口中任意输入内容,回车 。在IDEA的控制台打印kafka消费信息

1335e5b7a039cc780fba53d318de1410.png

;