Я хочу, чтобы мое приложение всегда стремилось наилучшим образом подключиться к первому узлу кластера базы данных с несколькими мастерами galera.
Мои приложения используют коннектор mariadb jdbc для подключения к базе данных. Из-за известных ограничений галеры у меня часто возникают конфликты. Одним из решений было бы заставить приложения подключаться только к одному узлу для записи.
Согласно документации коннектора mariadb здесь, я могу использовать режим sequentail, чтобы коннектор пробовал хосты по порядку. Но проблема с sequential в том, что он не откатывается, поэтому я все еще не могу гарантировать, что все приложения будут подключаться к одному и тому же узлу базы данных.
Есть ли какие-либо предложения?






Документация на странице знаний mariadb не совсем ясна.
Вот что я нашел о коннекторе Mariadb после некоторых тестов:
Базовый отказоустойчивый
Если режим отработки отказа не указан, он использует Базовый отказоустойчивый (например, jdbc:mariadb://host1,host2). В этом режиме драйвер JDBC будет изо всех сил пытаться подключиться к host1, пока он не станет недоступным. После аварийного переключения, если host1 вернется, он попытается вернуться к host1 и отключить другие хосты.
Последовательный режим Этот режим почти такой же, как базовый отказоустойчивый, за исключением того, что драйвер JDBC привязан ко второму узлу и не возвращается к первому узлу, даже если он возвращается.
Отказоустойчивость
Насколько я понимаю, jdbc:mariadb:failover в соединителе JDBC Mariadb эквивалентен jdbc:mysql:loadbalance в соединителе JDBC MySQL. Соединитель будет подключаться ко всем узлам в режиме чтения и записи, если вы не укажете (type=slave).
Репликация
С jdbc:mariadb:replication://host1,host2,host3 драйвер JDBC будет подключаться к host1 в режиме чтения и записи, а ко всем остальным узлам — в режиме чтения.