«Лучшая практика» использует двойную запись шлюза для обеспечения плавной онлайн-миграции Elasticsearch.
«Лучшая практика» использует двойную запись шлюза для обеспечения плавной онлайн-миграции Elasticsearch.

иллюстрировать

Проблемы и решения, описанные в этой статье, также применимы к Тенсент Облако Elasticsearch Service(ES)

Также используется:Тенсент Облако Облачный сервер (Облако Virtual Machine,CVM)

фон

Беспрепятственный перенос самостоятельно созданных ES-кластеров в облако с одновременным обновлением между версиями и поддержкой откатов. В этом случае обычно необходимо обеспечить завершение бизнеса в кратчайшие сроки. Предыдущие решения имели более или менее ограничения:

План миграции

Поддержка отката

онлайн

Дружественная миграция бизнеса в облако

Ограничения версии

Метод миграции

Скорость миграции

Снимок Снимок

Поддерживается, данные противоречивы

нет

поддерживать

Источник<=Цель

копировать

быстрый

онлайн Слияние

нет

да

Нетподдерживать

Источник<=Цель

резать

оченьбыстрый

Logstash

Поддерживается, данные противоречивы

нет

поддерживать

Нет требований

копировать

медленный

Исходя из текущей ситуации,Возникает новая потребность: есть ли решение?,А как насчет да и да или да?

Ответ да: Да.

1. План введения

Направляя трафик приложения на шлюз, запросы отправляются как в самодельную ES, так и в облачную ES одновременно. Шлюз отвечает за запись и последовательное повторное выполнение всех запросов на запись в ES в облаке. Это обеспечивает плавную запись в два кластера и плавную и безопасную миграцию данных.

2. Планирование развертывания

иллюстрировать:

Требуются как шлюз, так и консоль. ES В качестве хранилища метаданных источник можно использовать повторно. ES,Вы также можете использовать шлюз&Консольный сервер развертывает автономный компьютер ES (рекомендуется).

1. Развертывание и запуск автономного ES (пропустить)

Этот шаг не обязателен,Может быть повторно использован с другимиESкластеркак шлюз&Метаданные консоликластер。

2. Установите и запустите консоль

Язык кода:bash
копировать
curl -sSL http://get.infini.cloud | bash -s -- -p console -d /usr/local/service/console

После завершения установки пакет приложения находится по адресу /usr/local/service/console.

Язык кода:bash
копировать
cd /usr/local/service/console
./console-linux-amd64 -service install
./console-linux-amd64 -service start

После успешного запуска откройте в браузере ссылку для регистрации консоли и прослушивания по умолчанию. 9000 Порт, если сервер, на котором установлена ​​консоль, находится в публичной сети ip да100.100.100.100,Тогда адрес доступа:100.100.100.100:9000

  • ТЛС По умолчанию используется http, а если включено, то https.
  • Авторизация по умолчанию не требует аутентификации соединения,После открытия,Требуется имя пользователя&пароль。

Автоматически инициализировать базовые настройки системных индексов и шаблонов:

Третий шаг — правильно хранить ключ учетных данных. Нажмите на символ 👁️‍🗨️, чтобы ключ учетных данных стал видимым:

Вы также можете скачать настроенную информацию одним щелчком мыши на последнем шаге:

3. Установите и запустите шлюз

Язык кода:bash
копировать
curl -sSL http://get.infini.cloud | bash -s -- -p gateway -d /usr/local/service/gateway

После завершения установки пакет приложения находится по адресу /usr/local/service/gateway.

Настроить шлюз

Загрузите конфигурацию шлюза с двойной записью:

Язык кода:bash
копировать
cd /usr/local/service/gateway
# Удалить по По умолчанию — Конфигурация.
mv gateway.yml gateway.yml.bak
# Загрузите конфигурацию шлюза с двойной записью
wget https://tools-release-1253240642.cos.ap-shanghai.myqcloud.com/elasticsearch/config/gateway.yml

Измените следующие элементы конфигурации:

  • #primary

Основные элементы конфигурации кластера

  • #backup

Из элементов конфигурации кластера

  • #metadata & metrics & logging

Элементы конфигурации кластера метаданных

  • consume-queue_backup-bulk_request_ingestion-to-backup

нужно закрытьauto_start,по По умолчанию:

Запустить шлюз

Язык кода:bash
копировать
cd /usr/local/service/gateway
./gateway-linux-amd64 -service install
./gateway-linux-amd64 -service start

4. Зарегистрируйте серверную часть шлюза.

Изменить имя экземпляра:

После завершения регистрации вы сможете увидеть экземпляр шлюза в интерфейсе управления экземпляром:

5. Зарегистрируйте кластер

Зарегистрируйте исходный ES-кластер

Изменить имя кластера:

Зарегистрируйте ES-кластер в облаке

Изменить имя кластера:

После завершения вы можете увидеть обзор кластера в интерфейсе управления кластером:

3. Тест на двойное письмо

1. Временно включите инкрементальное резервное копирование.

Нажмите, чтобы открыть:

2. Зарегистрируйте кластер шлюзов.

Для облегчения тестирования прописываем шлюз как кластер в консоли:

Изменить имя кластера:

3. Тестирование с использованием шлюза

Выполните следующие операции на шлюзе:

Язык кода:json
копировать
# Создать индекс
PUT gateway-test

# Вставить документ
PUT gateway-test/doc/1
{
  "name": "dy"
}

PUT gateway-test/doc/2
{
  "name": "dy2"
}

# Обновить документацию
PUT gateway-test/doc/2
{
  "name": "dy_update"
}

# Удалить документ
DELETE gateway-test/doc/2

# удалить
DELETE gateway-test

Проверьте результаты синхронизации на ES в облаке:

4. Отключите инкрементальную синхронизацию.

После завершения теста инкрементное резервное копирование необходимо отключить, поскольку перед официальным использованием шлюза двойной записи требуется полная синхронизация:

4. Синхронизация данных

1. Синхронизировать все данные (опущено)

  • Для полной синхронизации данных см.:Elasticsearch План миграции,Используйте быстрый план для выполнения полного резервного копирования;
  • Если общие данные большие,Тогда первое полное резервное копирование может занять много времени (дни или даже недели),В этом случае вам нужно использовать быструю для выполнения нескольких инкрементальных резервных копий.,До тех пор, пока дополнительные данные не перестанут быть огромными.

2. Бизнес-переключатель записывает в указанное место и выключает прослушивание.

иллюстрировать:

Так как мы использовали быстрый по полной сумме + приращение,Таким образом, теперь трафик Switch Switch не будет создавать слишком много дополнительных данных до тех пор, пока в следующий раз не будет выполнено последнее быстрое инкрементное резервное копирование.,Не приведет к большому накоплению данных,Влияет на эффективность синхронизации.

  • Переключить трафик

Бизнес-указатель в настоящее время не подключен к шлюзу, поэтому конфигурацию подключения бизнес-кода необходимо изменить во время официального переключения. Текущий поток трафика выглядит следующим образом:

Компания изменит конфигурацию IP, первоначально указывающую на исходный кластер, чтобы дважды записать IP-адрес шлюза: 18000. Никаких изменений в логике кода не требуется. Поскольку инкрементная синхронизация шлюза двойной записи в настоящее время еще не включена, после переключения записи данные синхронизации облачного кластера сначала будут накапливаться в очереди сообщений. Бизнес-поток после перехода выглядит следующим образом:

  • Отключить обнюхивание

Ссылка по отключению анализа для каждого SDK: https://cloud.tencent.com/document/product/845/19538.

3. Последнее инкрементальное резервное копирование и восстановление (опущено)

После переключения службы на шлюз двойной записи,Вам все равно придется использовать быструю версию для последнего восстановления.,Также обратитесь к:Elasticsearch План миграции

4. Включите инкрементную синхронизацию шлюзов с двойной записью.

После завершения последнего быстрого увеличения фотографии вы можете Включить инкрементную синхронизацию шлюзов с двойной записию, после включения шлюз двойной записи будет воспроизводить накопленные операции записи на В облаке ES Кластеризируйте до тех пор, пока данные не будут выровнены, что действительно обеспечивает синхронизацию в реальном времени:

За завершением синхронизации данных можно наблюдать через потребление очереди:

Если компенсации производства и потребления совпадают, иллюстрирование будет завершено одновременно:

5. Переключите запись

Если вам необходимо сохранить резервное решение, вы можете продолжать направлять службы на шлюз с двойной записью. Затем поменяйте местами активный и резервный кластеры в конфигурации шлюза и перезапустите шлюз, чтобы ES кластер станет основным кластером, а старый кластер станет резервным. Если в бизнесе возникнут проблемы, вы можете выполнить откат в любой момент, поскольку данные согласованы. После завершения всех проверок вы можете напрямую передать бизнес. IP Переключитесь в облако.

6. Резюме

Решение с двойным шлюзом успешно решило многие проблемы, с которыми раньше было трудно справиться, например, межоблачную ES онлайн миграция сервисов, традиции План на сайте отсутствуют возможности отката в реальном времени и т. д. Даже поддержка мигрирует из высокой версии в низкую онлайн, хотя такая миграция не разрешена поддержкойбыстрый и может быть осуществлена ​​только через Logstash Подождите, пока инструменты будут реализованы. потому что Logstash Только поддержка полностью синхронизирована, что увеличит нагрузку по накоплению сообщений на шлюз с двойной записью. Но даже в этом случае это лучше, чем ничего, и будущее Количество встреч определенно будет развиваться в направлении тренда реального времени.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.