У меня есть работающий кластер сияний с хозяином и рабом.
Я использую следующий код для создания источника данных
val jdbi: Jdbi by lazy {
val ds = MariaDbDataSource()
ds.setUrl("jdbc:mysql:aurora://cluster_endpoint/db")
ds.user = System.getenv("DB_USERNAME")
ds.setPassword(System.getenv("DB_PASSWORD"))
val jdbi = Jdbi.create(ds)
jdbi.installPlugin(SqlObjectPlugin())
jdbi.installPlugin(KotlinSqlObjectPlugin())
jdbi
}
Затем, когда я нахожусь в операции только для чтения, я делаю следующее:
jdbi.open().use { handle ->
handle.setReadOnly(true)
...
}
Как я могу быть уверен, что когда я это сделаю, запросы / соединения будут правильно перенаправлены на ведомое устройство?
Я попытался записать соединение экземпляра БД
val url = handle.connection.getMetaData().getURL()
val connServer = url.substring(url.indexOf("//") + 2 , url.indexOf("."));
Но это всегда дает мне URL кластера ...
Есть ли способ узнать, разговариваем ли мы с рабом или с хозяином?