Проблемы и решения, описанные в этой статье, также применимы к Тенсент Облако Elasticsearch Service(ES)。
Также используется:Тенсент Облако Облачный сервер (Облако Virtual Machine,CVM)
Беспрепятственный перенос самостоятельно созданных ES-кластеров в облако с одновременным обновлением между версиями и поддержкой откатов. В этом случае обычно необходимо обеспечить завершение бизнеса в кратчайшие сроки. Предыдущие решения имели более или менее ограничения:
План миграции | Поддержка отката | онлайн | Дружественная миграция бизнеса в облако | Ограничения версии | Метод миграции | Скорость миграции |
---|---|---|---|---|---|---|
Снимок Снимок | Поддерживается, данные противоречивы | нет | поддерживать | Источник<=Цель | копировать | быстрый |
онлайн Слияние | нет | да | Нетподдерживать | Источник<=Цель | резать | оченьбыстрый |
Logstash | Поддерживается, данные противоречивы | нет | поддерживать | Нет требований | копировать | медленный |
Исходя из текущей ситуации,Возникает новая потребность: есть ли решение?,А как насчет да и да или да?
Ответ да: Да.
Направляя трафик приложения на шлюз, запросы отправляются как в самодельную ES, так и в облачную ES одновременно. Шлюз отвечает за запись и последовательное повторное выполнение всех запросов на запись в ES в облаке. Это обеспечивает плавную запись в два кластера и плавную и безопасную миграцию данных.
иллюстрировать:
Требуются как шлюз, так и консоль. ES В качестве хранилища метаданных источник можно использовать повторно. ES,Вы также можете использовать шлюз&Консольный сервер развертывает автономный компьютер ES (рекомендуется).
Этот шаг не обязателен,Может быть повторно использован с другимиESкластеркак шлюз&Метаданные консоликластер。
curl -sSL http://get.infini.cloud | bash -s -- -p console -d /usr/local/service/console
После завершения установки пакет приложения находится по адресу /usr/local/service/console.
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
Автоматически инициализировать базовые настройки системных индексов и шаблонов:
Третий шаг — правильно хранить ключ учетных данных. Нажмите на символ 👁️🗨️, чтобы ключ учетных данных стал видимым:
Вы также можете скачать настроенную информацию одним щелчком мыши на последнем шаге:
curl -sSL http://get.infini.cloud | bash -s -- -p gateway -d /usr/local/service/gateway
После завершения установки пакет приложения находится по адресу /usr/local/service/gateway.
Загрузите конфигурацию шлюза с двойной записью:
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
Измените следующие элементы конфигурации:
Основные элементы конфигурации кластера
Из элементов конфигурации кластера
Элементы конфигурации кластера метаданных
нужно закрытьauto_start
,по По умолчанию:
cd /usr/local/service/gateway
./gateway-linux-amd64 -service install
./gateway-linux-amd64 -service start
Изменить имя экземпляра:
После завершения регистрации вы сможете увидеть экземпляр шлюза в интерфейсе управления экземпляром:
Изменить имя кластера:
Изменить имя кластера:
После завершения вы можете увидеть обзор кластера в интерфейсе управления кластером:
Нажмите, чтобы открыть:
Для облегчения тестирования прописываем шлюз как кластер в консоли:
Изменить имя кластера:
Выполните следующие операции на шлюзе:
# Создать индекс
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 в облаке:
После завершения теста инкрементное резервное копирование необходимо отключить, поскольку перед официальным использованием шлюза двойной записи требуется полная синхронизация:
иллюстрировать:
Так как мы использовали быстрый по полной сумме + приращение,Таким образом, теперь трафик Switch Switch не будет создавать слишком много дополнительных данных до тех пор, пока в следующий раз не будет выполнено последнее быстрое инкрементное резервное копирование.,Не приведет к большому накоплению данных,Влияет на эффективность синхронизации.
Переключить трафик
Бизнес-указатель в настоящее время не подключен к шлюзу, поэтому конфигурацию подключения бизнес-кода необходимо изменить во время официального переключения. Текущий поток трафика выглядит следующим образом:
Компания изменит конфигурацию IP, первоначально указывающую на исходный кластер, чтобы дважды записать IP-адрес шлюза: 18000. Никаких изменений в логике кода не требуется. Поскольку инкрементная синхронизация шлюза двойной записи в настоящее время еще не включена, после переключения записи данные синхронизации облачного кластера сначала будут накапливаться в очереди сообщений. Бизнес-поток после перехода выглядит следующим образом:
Отключить обнюхивание
Ссылка по отключению анализа для каждого SDK: https://cloud.tencent.com/document/product/845/19538.
После переключения службы на шлюз двойной записи,Вам все равно придется использовать быструю версию для последнего восстановления.,Также обратитесь к:Elasticsearch План миграции
После завершения последнего быстрого увеличения фотографии вы можете Включить инкрементную синхронизацию шлюзов с двойной записию, после включения шлюз двойной записи будет воспроизводить накопленные операции записи на В облаке ES Кластеризируйте до тех пор, пока данные не будут выровнены, что действительно обеспечивает синхронизацию в реальном времени:
За завершением синхронизации данных можно наблюдать через потребление очереди:
Если компенсации производства и потребления совпадают, иллюстрирование будет завершено одновременно:
Если вам необходимо сохранить резервное решение, вы можете продолжать направлять службы на шлюз с двойной записью. Затем поменяйте местами активный и резервный кластеры в конфигурации шлюза и перезапустите шлюз, чтобы ES кластер станет основным кластером, а старый кластер станет резервным. Если в бизнесе возникнут проблемы, вы можете выполнить откат в любой момент, поскольку данные согласованы. После завершения всех проверок вы можете напрямую передать бизнес. IP Переключитесь в облако.
Решение с двойным шлюзом успешно решило многие проблемы, с которыми раньше было трудно справиться, например, межоблачную ES онлайн миграция сервисов, традиции План на сайте отсутствуют возможности отката в реальном времени и т. д. Даже поддержка мигрирует из высокой версии в низкую онлайн, хотя такая миграция не разрешена поддержкойбыстрый и может быть осуществлена только через Logstash Подождите, пока инструменты будут реализованы. потому что Logstash Только поддержка полностью синхронизирована, что увеличит нагрузку по накоплению сообщений на шлюз с двойной записью. Но даже в этом случае это лучше, чем ничего, и будущее Количество встреч определенно будет развиваться в направлении тренда реального времени.