代码之家  ›  专栏  ›  技术社区  ›  ForeverLearner

在运行时重新加载postgres数据库配置

  •  0
  • ForeverLearner  · 技术社区  · 6 年前

    我使用的是greenplum集群,您只能向主服务器提交查询。 我的主节点ip在应用程序.conf. 但是由于高可用性等原因,主节点的IP会切换到不同的机器上。

    应用程序.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或ping机器并识别当前主设备的IP。

    但是,我怎么能写得过多呢 serverName 变量并在运行时重新加载。

    设计好吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   simpadjo    6 年前

    serverName . 此域记录必须指向主记录。 这种方法将大多数高可用性问题留在了网络级别,并且不会泄漏到应用程序代码中。