Балансировка нагрузки
При развертывании нескольких узлов FE пользователи могут развернуть слой балансировки нагрузки поверх FE для достижения высокой доступности.
Ниже приведены некоторые варианты обеспечения высокой доступности:
Подход на уровне кода
Один из способов — реализовать код на уровне приложения для выполнения повторных попыток и балансировки нагрузки. Например, если соединение разорвано, оно автоматически повторит попытку на других соединениях. Этот подход требует от пользователей настройки адресов нескольких узлов FE.
JDBC Connector
JDBC connector поддерживает автоматические повторные попытки:
jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]
ProxySQL
ProxySQL — это прокси-слой MySQL, который поддерживает разделение чтения/записи, маршрутизацию запросов, кэширование SQL, динамическую конфигурацию нагрузки, отказоустойчивость и фильтрацию SQL.
Selena FE отвечает за получение запросов на подключение и запросы, и он горизонтально масштабируется и обладает высокой доступностью. Однако FE требует от пользователей настройки прокси-слоя поверх него для достижения автоматической балансировки нагрузки. Смотрите следующие шаги для настройки:
1. Установите необходимые зависимости
yum install -y gnutls perl-DBD-MySQL perl-DBI perl-devel
2. Загрузите установочный пакет
wget https://github.com/sysown/proxysql/releases/download/v1.5.2/proxysql-2.0.14-1-centos7.x86_64.rpm
3. Распакуйте в текущий каталог
rpm2cpio proxysql-2.0.14-1-centos7.x86_64.rpm | cpio -ivdm