Балансировка нагрузки
При развёртывании нескольких узлов 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