Я готовлюсь к сертификации CCDAK, и я задался вопросом:
В теме есть три реплики, и вы устанавливаете min.insync.replicas равным 2. Если две из трех реплик недоступны, что происходит, когда брокеру отправляется запрос на использование?
Данный ответ таков:
Данные будут возвращены оставшейся синхронизированной репликой.
У меня были сомнения по поводу углового случая: что произойдет, когда ведущая и синхронизированная реплика отключаются одновременно (третья реплика все еще не синхронизирована), а потребитель хочет прочитать сообщение отсутствует в третьей реплике (возможно, оно еще не было скопировано, так как это несинхронизированная реплика)?
Практический пример может быть примерно таким: допустим, потребитель зафиксировал смещение 10 и хочет читать с 11, но третья реплика имеет сообщения до смещения 9. Лидер и последователь не работают, что произойдет? Будет ли потребитель просто ждать других брокеров или Kafka выдаст ошибку, с которой мне придется иметь дело?