Вы можете посмотреть на реализацию пользовательского ConsumerPartitionAssignor и использовать его для своих потребителей - это позволяет вам явно контролировать назначения разделов, все еще используя функции управления группами.
Путем переопределения subscriptionUserData вы должны быть в состоянии распространить текущий раздел, из которого этот потребитель читает (или явно сконфигурировать один в своей конфигурации и переслать его), руководителю группы, который решает, кто должен читать с какого раздела во время перебалансировки. В этом случае вы можете назначить разделы такими, какими они были.
При этом я не уверен, что рекомендую этот подход, если вам нужно быть глубоко связанным с внутренними компонентами, вы можете не правильно использовать Кафку. Может быть, потребуется немного времени, чтобы пересмотреть ваш подход:)
Кафка также имеет CooperativeStickyAssignor в последних версиях, который снимает много «укусов» с перебалансировок, принимая во внимание, что это также может помочь смягчить ваши боль ..