Apache kafka Flink kafka使用者从特定分区获取消息

Apache kafka Flink kafka使用者从特定分区获取消息,apache-kafka,apache-flink,flink-streaming,Apache Kafka,Apache Flink,Flink Streaming,我们希望在阅读卡夫卡的信息时实现并行性。因此,我们希望在flinkkafkaconsumer中指定分区号。它将读取卡夫卡中所有分区的消息,而不是特定的分区号。下面是示例代码: Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "localhost:9092"); properties.setProperty("zookeepe

我们希望在阅读卡夫卡的信息时实现并行性。因此,我们希望在flinkkafkaconsumer中指定分区号。它将读取卡夫卡中所有分区的消息,而不是特定的分区号。下面是示例代码:

Properties properties = new Properties();
properties.setProperty("bootstrap.servers", "localhost:9092");
properties.setProperty("zookeeper.connect", "localhost:2181");
properties.setProperty("group.id", "Message-Test-Consumers");
properties.setProperty("partition", "1"); //not sure about this syntax.

FlinkKafkaConsumer<String> kafkaConsumer = new FlinkKafkaConsumer<String>("EventLog", new SimpleStringSchema(), properties);
Properties属性=新属性();
setProperty(“bootstrap.servers”,“localhost:9092”);
setProperty(“zookeeper.connect”,“localhost:2181”);
setProperty(“group.id”,“消息测试消费者”);
属性。设置属性(“分割”、“1”)//不确定这个语法。
FlinkKafkaConsumer-kafkaConsumer=新的FlinkKafkaConsumer(“事件日志”,新的SimpleStringSchema(),属性);

请推荐任何更好的方法来获得并行性。

我不相信有一种机制可以限制Flink从哪个分区读取。我也不知道这将如何帮助您实现并行读取分区的目标,而Flink则会这样做


Flink Kafka源连接器并行读取所有可用分区。只需将kafka源连接器的并行度设置为所需的任何并行度,记住有效并行度不能超过分区数。这样,Flink的Kafka源连接器的每个实例都将从一个或多个分区读取。您还可以配置kafka consumer,以便在作业运行时自动发现可能创建的新分区。

我认为没有机制限制Flink将从哪些分区读取。我也不知道这将如何帮助您实现并行读取分区的目标,而Flink则会这样做

Flink Kafka源连接器并行读取所有可用分区。只需将kafka源连接器的并行度设置为所需的任何并行度,记住有效并行度不能超过分区数。这样,Flink的Kafka源连接器的每个实例都将从一个或多个分区读取。您还可以配置kafka使用者,以自动发现作业运行时可能创建的新分区