После долгих исследований я нашел решение по своему собственному вопросу. Поскольку глобальное упорядочение через раздел kafka не является практичным, я создал N номеров разделов kafka с N параллелизмом flink и написал пользовательский разделитель kafka, который переопределит стратегию разбиения kafka по умолчанию и отправит записи в определенный раздел в соответствии с логикой, указанной в настраиваемом разделителе. Это гарантирует, что конкретные сообщения всегда отправляются в один и тот же раздел. при настройке параллелизма flink помните о следующих моментах.
1) разделы kafka == параллелизм flink: этот случай идеален, поскольку каждый потребитель заботится об одном разделе. Если ваши сообщения сбалансированы между разделами, работа будет равномерно распределена между операторами Flink;
2) разделы kafka <параллелизм flink: некоторые экземпляры flink не будут получать никаких сообщений. Чтобы избежать этого, перед любой операцией необходимо вызвать ребалансирование входного потока, что приведет к перераспределению данных: </p>
3) разделы kafka> параллелизм flink: в этом случае некоторые экземпляры будут обрабатывать несколько разделов. Опять же, вы можете использовать ребаланс, чтобы равномерно распределять сообщения среди работников.