Перезагрузить конфигурацию базы данных postgres во время выполнения - PullRequest
0 голосов
/ 14 октября 2018

Я использую кластер greenplum, где вы можете отправить запрос только мастеру.У меня есть главный узел ip в application.conf.Но IP-адрес главного узла переключается на разные машины из-за высокой доступности и т. Д.

записи application.conf:

database = {
  connectionPool = "HikariCP"
  dataSourceClass = "org.postgresql.ds.PGSimpleDataSource"
  properties = {
    serverName = "103.10.11.6"
    portNumber = "5432"
    databaseName = "test"
    currentSchema = "public"
    user = "user"
    password = "user123"
  }
  numThreads = 10
}

Это теперь загружается с помощью:

val db = Database.forConfig("database")

Я могу поймать исключение ConnectionException или пропинговать машину и определить IP-адрес текущего мастера.

Но как мне перезаписать переменную serverName в конфигурации и перезагрузить во время выполнения.

Это хороший дизайн?

1 Ответ

0 голосов
/ 14 октября 2018

Вы должны установить доменное имя вместо IP-адреса на serverName.Эта запись домена должна указывать на мастера.Такой подход оставляет большую часть проблем высокой доступности на сетевом уровне и не пропускает их в код приложения.

...