Могу ли я, возможно, замедлить потребление группы A, если группа B слишком сильно отстает
Если у вас есть доступ к позиции группы B, тогда вы можете просто избежать вызова poll
в группеПотребитель A, пока группа B не догонит (если вы используете какую-то толстую упаковку, такую как spring-kafka, вам может потребоваться остановить и заново создать слушателя).
В зависимости от того, как настроены группы для сохранения смещенийдругая группа также может получить доступ к позиции группы, прочитав тему внутренняя __consumer_offsets
(вы можете посмотреть, как это делает bin/kafka-consumer-groups.sh
из каталога сервера).
можетЯ получаю группу B для управления смещением группы A любым способом
Не совсем.Вы можете написать в __consumer_offsets
, чтобы изменить смещение группы A, но это значение будет считываться только при повторном создании потребителя, не , когда оно все еще работает.По сути, если вам нужен такой уровень связи, вам нужно написать собственный код, который бы позволил службе Group-B связываться со службой Group-A, чтобы изменить его смещение с помощью seek
.
В общемДело в том, что - если потребитель уже запущен - тогда нет связи, если вы что-то не создадите.