Я хотел бы развернуть кластер Kafka в двух центрах обработки данных с одинаковым количеством узлов на каждом контроллере домена. Первый DC используется в активном режиме, а второй — в пассивном.
Например, предположим, что оба центра обработки данных имеют 3 узла с 2 синхронизированными репликами (ISR) на первом контроллере домена и одним ISR на втором контроллере домена.
Возможно ли иметь третий контроллер домена, содержащий узел арбитра/свидетеля/наблюдателя, чтобы в случае сбоя одного контроллера домена выборы лидера могли быть успешными с правильным результатом с точки зрения согласованности? В mongoDB есть такая функция под названием Арбитр набора реплик.
Как насчет развертывания ZooKeeper в трех центрах обработки данных? Насколько я понимаю, ZooKeeper не хранит данные Kafka и с ним не следует связываться для каждой новой записи в топике Kafka, т.е. вы не платите задержку третьему DC за каждую новую запись.