В теме есть 3 реплики и min.insyinc.replicas до 2, что происходит, когда и подписчик, и реплика in-syinc отключаются, а потребитель хочет читать?

Я готовлюсь к сертификации CCDAK, и я задался вопросом:

В теме есть три реплики, и вы устанавливаете min.insync.replicas равным 2. Если две из трех реплик недоступны, что происходит, когда брокеру отправляется запрос на использование?

Данный ответ таков:

Данные будут возвращены оставшейся синхронизированной репликой.

У меня были сомнения по поводу углового случая: что произойдет, когда ведущая и синхронизированная реплика отключаются одновременно (третья реплика все еще не синхронизирована), а потребитель хочет прочитать сообщение отсутствует в третьей реплике (возможно, оно еще не было скопировано, так как это несинхронизированная реплика)?

Практический пример может быть примерно таким: допустим, потребитель зафиксировал смещение 10 и хочет читать с 11, но третья реплика имеет сообщения до смещения 9. Лидер и последователь не работают, что произойдет? Будет ли потребитель просто ждать других брокеров или Kafka выдаст ошибку, с которой мне придется иметь дело?


person Cr4zyTun4    schedule 07.06.2021    source источник


Ответы (1)


Ваш потребитель не будет перебалансирован, потому что со стороны Kafka он не может выбрать лидера для этого раздела. Раздел не синхронизирован, и тогда Kafka будет ждать запуска других реплик, чтобы выбрать лидера. В этом случае ваш потребитель зависнет.

person nipuna    schedule 07.06.2021
comment
Согласитесь ли вы со мной в том, что из-за упомянутого выше случая ответ был не совсем правильным? - person Cr4zyTun4; 08.06.2021