3.3 Базовое маршрутизирование подключений
Плагин Маршрутизация подключений выполняет маршрутизацию на основе подключений, что означает, что он пересылает пакеты на сервер без их проверки. Это упрощенный подход, обеспечивающий высокую пропускную способность. Дополнительную общую информацию о маршрутизации подключений см. в Разделе 1.3, «Маршрутизация подключений».
Пример простой настройки маршрутизации на основе подключений показан ниже. Эти и другие параметры описаны в Разделе 4.3.3, «Параметры файла конфигурации».
[logger]
level = INFO
[routing:secondary]
bind_address = localhost
bind_port = 7001
destinations = foo.example.org:3306,bar.example.org:3306,baz.example.org:3306
routing_strategy = round-robin
[routing:primary]
bind_address = localhost
bind_port = 7002
destinations = foo.example.org:3306,bar.example.org:3306
routing_strategy = first-available
Здесь мы используем маршрутизацию подключений для циклического распределения MySQL-подключений к трём MySQL-серверам на порту 7001, как определено стратегией round-robin routing_strategy. В этом примере также настроена стратегия first-available для двух серверов, использующих порт 7002. Стратегия first-available использует первый доступный сервер из списка целевых серверов. Количество MySQL-инстансов, назначенных каждому destinations, зависит от вас, так как это всего лишь пример. Маршрутизатор не проверяет пакеты и не ограничивает подключения на основе стратегии маршрутизации, поэтому приложение должно определить, куда отправлять запросы чтения и записи, что в нашем примере — либо порт 7001, либо 7002.
Предполагая, что все три MySQL-инстанса работают, следующая команда запускает MySQL Router, передавая файл конфигурации:
$> ./bin/mysqlrouter -config=/etc/mysqlrouter-config.conf
Теперь MySQL Router прослушивает порты 7001 и 7002 и отправляет запросы соответствующим MySQL-инстансам. Например:
$> ./bin/mysql --user=root --port 7001 --protocol=TCP
Это приведет к подключению сначала к foo.example.org, затем к bar.example.org, потом к baz.example.org, и четвёртый запрос вернётся к foo.example.org. Вместо этого мы по-другому настроили поведение порта 7002:
$> ./bin/mysql --user=root --port 7002 --protocol=TCP
Это сначала подключается к foo.example.org, и последующие запросы будут продолжать подключаться к foo.example.org до тех пор, пока не произойдёт ошибка. В этом случае будет использован bar.example.org. Дополнительную информацию об этом поведении см. в routing_strategy.
© 2025 Oracle
Licensed under the GPLv2 License.