Мы тестируем поведение при отказе, используя специфические функции коннектора JDBC MariaDB Aurora.
Мы установили URL-адрес JDBC как документация предлагает:
jdbc:mysql:aurora://cluster.cluster-xxxx.us-east-1.rds.amazonaws.com/db
Проблема в том, что как только мы добавим часть aurora:
в схему URL-адреса, мы увидим увеличение числа подключений к модулю записи базы данных до момента, когда нам придется откатить изменение (оно даже достигает 3000 подключений).
Версии:
Конфигурация:
master {
profile = "slick.jdbc.MySQLProfile$"
db {
driver = "org.mariadb.jdbc.Driver"
url = "jdbc:mysql:aurora://cluster-name.cluster-xxx.us-east-1.rds.amazonaws.com/db_name?characterEncoding=utf8mb4&rewriteBatchedStatements=true&usePipelineAuth=false"
user = "rw_user"
password = "rw_user_pass"
numThreads = 20
queueSize = 1000000
}
}
slaves = [
{
profile = "slick.jdbc.MySQLProfile$"
db {
driver = "org.mariadb.jdbc.Driver"
url = "jdbc:mysql:aurora://cluster-name.cluster-ro-xxx.us-east-1.rds.amazonaws.com/db_name?characterEncoding=utf8mb4&usePipelineAuth=false"
user = "ro_user"
password = "ro_user_pass"
numThreads = 20
queueSize = 1000000
}
}
]
Мы пытались добавить часть aurora:
в URL-схему JDBC после обновления версии коннектора MariaDB, но количество подключений к Reader снова начало увеличиваться:
Если мы запустим show processlist
на конечной точке только для чтения, мы увидим все открытые соединения в «очищенном» состоянии и команду «Сон».
Мы удалили часть aurora:
из конечной точки только для чтения только для того, чтобы стабилизировать количество подключений к ней. Возможно ли, что драйвер ищет мастер кластера при открытии соединений? Это бы объяснило такое поведение.