Репликация данных во вторичный кластер
Kafka часто развертывается в нескольких средах для аварийного восстановления, обеспечения высокой доступности и гибридных сценариев развертывания локально и в облаке. Для этих сценариев требуется репликация данных из одного экземпляра Kafka в другой с помощью функции зеркального отображения Apache Kafka. Зеркальное отображение можно запустить как непрерывный процесс или периодически использовать для переноса данных из одного кластера в другой.
Зеркальное отображение нельзя рассматривать как средство обеспечения отказоустойчивости. Из-за разного смещения элементов в разделах основного и вторичного кластеров они не могут использоваться как взаимозаменяемые.
Как работает зеркальное отображение?
Зеркальное отображение выполняется с помощью средства MirrorMaker (часть Apache Kafka). Это средство использует записи из разделов в основном кластере, а затем создает локальную копию во вторичном. MirrorMaker использует один или несколько получателей, которые считывают основной кластер, и производитель, который записывает данные в локальный (вторичный) кластер.
В наиболее полезной настройке зеркального отображения для аварийного восстановления используются кластеры Kafka в разных регионах Azure. Для этого виртуальные сети, в которых находятся кластеры, находятся в одноранговом узле.
На следующей схеме показан процесс зеркального отображения и обмен данными между кластерами.
Основной и вторичный кластеры могут отличаться количеством узлов и секций. Смещения в темах также отличаются. Зеркальное отображение сохраняет значение ключа, который используется для секционирования, поэтому порядок записей сохраняется вместе с этими значениями.
Зеркальное отображение в пределах сети
Чтобы реализовать зеркальное отображение между кластерами Kafka в разных сетях, следует учитывать следующее.
- Шлюзы: сети должны взаимодействовать на уровне TCP/IP.
- Серверная адресация: можно выбрать адреса узлов кластера, используя их IP-адреса или полные доменные имена.
- IP-адреса: если вы настраиваете кластеры Kafka для использования объявления IP-адресов, продолжить установку зеркального отображения можно, используя IP-адреса узлов брокера и узлов Zookeeper.
- Доменные имена: если вы не настраиваете кластеры Kafka для объявления IP-адресов, кластеры должны иметь возможность подключаться друг к другу с помощью полных доменных имен (FQDN). Потребуется установить в каждой сети сервер службы доменных имен (DNS), который настроен для пересылки запросов в другие сети. При создании виртуальной сети Azure вместо использования автоматического DNS, предоставленного сетью, необходимо указать пользовательские DNS-сервер и IP-адрес для сервера. Когда виртуальная сеть будет готова, создайте виртуальную машину Azure, использующую этот IP-адрес, а затем установите и настройте на ней программное обеспечение DNS.
Предупреждение
Создайте и настройте пользовательский DNS-сервер, прежде чем устанавливать HDInsight в виртуальной сети. HDInsight не нужно дополнительно настраивать для использования DNS-сервера, настроенного для виртуальной сети.