Я использую Flink для чтения данных с Apache Pulsar. У меня есть разделенная топи c в пульсар с 8 разделами. Я создал 1000 сообщений в этой топике c, распределенных по 8 разделам. У меня в ноутбуке 8 ядер, поэтому у меня 8 подзадач (по умолчанию параллелизм = количество ядер). Я открыл Flink-UI после выполнения кода из Eclipse и обнаружил, что некоторые подзадачи не получают никаких записей (в режиме ожидания). Я ожидаю, что будут использованы все 8 подзадач (я ожидаю, что каждая подзадача будет сопоставлена с одним разделом в моей топи c).
После перезапуска задания я обнаружил, что иногда используется 3 подзадачи, а иногда 4 задачи, в то время как остальные подзадачи простаивают.
Пожалуйста, обратитесь в службу поддержки, чтобы прояснить этот сценарий.
Также, как я могу узнать, что есть перестановка между суб-дублями или нет?
Мой код:
ConsumerConfigurationData<String> consumerConfigurationData = new ConsumerConfigurationData<>();
Set<String> topicsSet = new HashSet<>();
topicsSet.add("flink-08");
consumerConfigurationData.setTopicNames(topicsSet);
consumerConfigurationData.setSubscriptionName("my-sub0111");
consumerConfigurationData.setSubscriptionType(SubscriptionType.Key_Shared);
consumerConfigurationData.setConsumerName("consumer-01");
consumerConfigurationData.setSubscriptionInitialPosition(SubscriptionInitialPosition.Earliest);
PulsarSourceBuilder<String> builder = PulsarSourceBuilder.builder(new SimpleStringSchema()).pulsarAllConsumerConf(consumerConfigurationData).serviceUrl("pulsar://localhost:6650");
SourceFunction<String> src = builder.build();
DataStream<String> stream = env.addSource(src);
stream.print(" >>> ");