Отказоустойчивый 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.