从本地计算机到AWS RDS PostgreSQL数据库的连接速度很慢

时间:2017-03-30 14:41:52

标签: java postgresql amazon-web-services ssl rds

我到处寻找这个问题的答案。我在SO上发现similar (unanswered) question但与Java或SSL问题无关。

重要信息:

  • 我连接的数据库是RDS上的PostgreSQL。
  • 我实际上可以连接到DB(建立连接大约需要3分钟)。建立连接后,简单查询需要15-120秒。
  • 只有从我的代码连接时才会出现问题。
  • 从Postico(在同一台机器上)连接完美无缺。
  • 部署到AWS EC2,完全相同的连接可以正常工作。
  • 我已将RDS证书添加到密钥库。
  • RDS force_ssl参数设置为true。
  • 请注意连接字符串末尾的+ "?ssl=true"参数。
  • 通过直接IP测试替换域(以排除DNS问题)。同样的事情。

我怀疑它与SSL有关,但无法确认。

这是我的联系(很标准):

    String dbUriString = ConfigUtils.getEnv("DATABASE_URL");

    URI dbUri = new URI(dbUriString);

    String username = dbUri.getUserInfo().split(":")[0];
    String password = dbUri.getUserInfo().split(":")[1];
    String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath() + "?ssl=true";

    ComboPooledDataSource datasource = new ComboPooledDataSource();

    datasource.setUser(username);
    datasource.setPassword(password);
    datasource.setJdbcUrl(dbUrl);
    datasource.setDriverClass("org.postgresql.Driver");

    datasource.setMaxPoolSize(20);
    datasource.setMinPoolSize(5);
    datasource.setAcquireIncrement(1);
    datasource.setAcquireRetryAttempts(3);
    datasource.setInitialPoolSize(5);
    datasource.setTestConnectionOnCheckout(true);

    return datasource;

更多信息:

  • 这是一个Play Framework应用程序。
  • Java 8。
  • DataSource连接器c3p0。

非常感谢任何帮助。

0 个答案:

没有答案