Spec-Zone.ru › MySQL Router 8.4

1.4 Учёт особенностей приложения

Использование MySQL Router не требует специфических библиотек или интерфейсов. Помимо управления экземпляром MySQL Router, пишите своё приложение так, как если бы MySQL Router был обычным экземпляром MySQL.

Единственное отличие при использовании MySQL Router заключается в том, как вы подключаетесь к серверу MySQL. Приложения, использующие единственное подключение MySQL при запуске, которые не проверяют ошибки подключения, необходимо обновить. Это связано с тем, что MySQL Router перенаправляет подключения при попытке подключения и не считывает пакеты или не выполняет анализ. Если сервер MySQL выходит из строя, Router возвращает ошибку подключения приложению.

По этим причинам приложение должно быть написано так, чтобы проверять ошибки подключения и, если они встречаются, повторно пытаться установить подключение. Если в вашем приложении используется такая или аналогичная техника, использование MySQL Router не потребует дополнительных усилий.

Следующее даст лучшее представление о том, почему вы можете захотеть использовать MySQL Router и как он используется с точки зрения приложения.

Сценарии

Существует несколько возможных сценариев использования MySQL Router, в том числе:

  • Как разработчик, я хочу, чтобы моё приложение подключалось к сервису, получая по умолчанию подключение к текущему первичному узлу кластера репликации.

  • Как администратор, я хочу настроить несколько служб, чтобы MySQL Router прослушивал отдельный порт для каждого высокодоступного набора реплик.

  • Как администратор, я хочу иметь возможность запускать службу маршрутизации подключений на порту 3306, чтобы она была более прозрачной для пользователя или приложения.

  • Как администратор, я хочу настроить стратегию маршрутизации для каждой службы маршрутизации подключений, чтобы я мог указать, возвращается ли первичный или вторичный узел.

Поток работы с MySQL Router

Поток работы с MySQL Router следующий:

  1. MySQL клиент или коннектор подключается к MySQL Router, например, к порту 6446.

  2. Router проверяет наличие доступного сервера MySQL.

  3. Router открывает подключение к подходящему серверу MySQL.

  4. Router пересылает пакеты туда и обратно между приложением и сервером MySQL.

  5. Router разрывает подключение приложения, если подключенный сервер MySQL выходит из строя. После этого приложение может повторить попытку подключения к Router, и Router выберет другой доступный сервер MySQL.

Подключения через MySQL Router

Приложение подключается к MySQL Router, и Router подключает приложение к доступному серверу MySQL.

Этот пример демонстрирует, что подключение прозрачно подключается к одному из экземпляров InnoDB Cluster. Поскольку в этом примере используется изолированный InnoDB Cluster, где все экземпляры работают на одном хосте, мы проверяем переменную состояния port, чтобы увидеть, какой экземпляр MySQL подключён.

Установите соединение с MySQL Router, используя, например, MySQL клиент:

$> mysql -u root -h 127.0.0.1 -P 6446 -p

Эти номера портов зависят от вашей конфигурации, но сравните порты в этом примере:

mysql> select @@port;
+--------+
| @@port |
+--------+
|   3310 |
+--------+
1 row in set (0.00 sec)

В заключение, клиент (приложение) подключился к порту 6446, но подключен к экземпляру MySQL на порту 3310.

Рекомендации

Ниже приведены рекомендации по использованию MySQL Router.

  • Установите и запустите MySQL Router на том же хосте, что и приложение. Список причин см. в главе 3, Развёртывание MySQL Router.

  • Привяжите Router к localhost, используя bind_port = 127.0.0.1:<port> в файле конфигурации. В качестве альтернативы, в Linux, отключите TCP-соединения (см. --conf-skip-tcp) и ограничьте это только использованием соединений Unix-сокет (см. --conf-use-sockets).

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-router-8.4-en/mysql-router-general-using-developing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API