Можно ли указать время ожидания для подключений Maxscale из приложений?

Я установил кластер MariaDB Galera с двумя узлами в системах Ubuntu. Простое приложение подключается к базе данных с помощью MaxScale, и оно отлично работает. Но когда узел в кластере, который используется в данный момент, скажем, узел 1, выходит из строя, приложение получает ошибку, такую ​​как 1927 или 1045. При получении этой ошибки приложение пытается снова подключиться к базе данных, но оно продолжает отказывать много раз, но успешно завершается после переключения с узла 1 на узел 2, и MaxScale предоставляет соединение с базой данных узлу 2. В моем кластерном окружении продолжительность пробного соединения составляет от 20 до 50 секунд.

Мой вопрос заключается в том, есть ли какой-либо параметр времени ожидания подключения MaxScale, который я могу использовать, чтобы указать время ожидания подключения для некоторого значения, например, 50 секунд, чтобы приложение пыталось установить новое подключение только один раз, а не много раз. (Я использовал параметр connectTimeout в JDBC URL для базы данных, но он не был эффективным для моего приложения, и я думаю, что это ожидается.)

1 ответ

MaxScale отправляет ошибки, скорее всего, потому что нет главного сервера. Эту ошибку невозможно предотвратить с помощью MaxScale 2.2, и требуется повторное подключение на стороне клиента.

В MaxScale 2.3 будет доступна новая функция, которая позволяет поведение, подобное описанному вами (см. MXS-1501).

Если вы выполняете запросы только для чтения, может быть полезно включить master_failure_mode=error_on_write, Это позволит выполнять запросы только для чтения, даже если главный сервер недоступен.

Другие вопросы по тегам