Я использую Flink для чтения данных из Apache Pulsar. У меня в Pulsar есть разделенная тема с 8 разделами. Я создал 1000 сообщений в этой теме, распределенных по 8 разделам. В моем ноутбуке 8 ядер, поэтому у меня есть 8 подзадач (по умолчанию parallelism = # ядер). Я открыл Flink-UI после выполнения кода из Eclipse и обнаружил, что некоторые подзадачи не получают никаких записей (бездействуют). Я ожидаю, что все 8 подзадач будут использованы (я ожидаю, что каждая подзадача будет сопоставлена с одним разделом в моей теме).
После перезапуска задания я обнаружил, что иногда используются 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(" >>> ");