Отказоустойчивый Kafka producer#
Отказоустойчивый Kafka producer обеспечивает возможность записи данных в топик резервного кластера, в случае недоступности основного. При восстановлении доступности, запись возвращается на основной кластер.
Для подключения отказоустойчивого Kafka producer необходимо перед развертыванием SEDR в конфигурационном файле vars.yml добавить блок fallback_connectors, где необходимо указать список всех коннекторов, для которых настраивается отказоустойчивый Kafka producer:
replicator:
fallback_connectors:
- xxx-connector
- yyy-connector
Также в файл vars.yml дополнительно необходимо добавить параметры для воркера, включающего в себя эти коннекторы:
replicator:
workers:
- name: <имя воркера>
additional_producer_props:
- actor.system.shutdown.delay.ms=300000
- retry.delay.ms=300000
- clients=main,fallback
- strategy=fallback
- fallback.bootstrap.servers=host1:9093,host2:9093
Здесь необходимо задать fallback.bootstrap.servers - список hosts подключения резервного кластера (fallback) в случае отказа главного (main). Параметр actor.system.shutdown.delay.ms - определяет таймаут, после которого среда останавливается, если все producers остановились; параметр retry.delay.ms - определяет задержку в мс, после которой неисправный producer вернется в список активных producers.
В случае старта коннектора с указанными параметрами в файле vars.yml в конфигурацию коннектора будет записана переменная "ha.producer.enabled" со значением true.