1) С помощью acks=-1
Кафка будет принимать записи, пока существует min.insync.replicas
синхронных реплик.
Таким образом, если предположить, что min.insync.replicas
равно 1 или 2 для вашей темы, с одной репликой внесинхронизации да, запись будет принята Кафкой
2) В обычном случае Кафка всегда пытается сохранить все реплики в синхронизации.Если этого не происходит, вы должны проверить посредника, на котором размещена несинхронизированная реплика, как что-то не так.Этот брокер работает?Это здорово?Это перегружено?Другие разделы в этом посреднике также не синхронизированы?
В старых версиях Kafka также были некоторые проблемы с репликацией, которые могли вызывать несинхронизированные реплики.Хороший обходной путь - принудительное переизбрание контроллера:
zookeeper-shell [ZK_HOST:ZK_POST] rmr /controller