【问题标题】:How do I close Database Connection Datastax Java Driver如何关闭数据库连接 Datastax Java 驱动程序
【发布时间】:2013-10-25 01:57:05
【问题描述】:

我正在使用 Datastax Java 驱动程序。 有一个使用相同的教程。

我不明白的是如何关闭与 cassandra 的连接? 没有可用的关闭方法,我假设我们不想关闭 Session,因为它预计每个应用程序都有一个。

问候 高拉夫

【问题讨论】:

    标签: java cassandra datastax-java-driver datastax


    【解决方案1】:

    tl;dr 在Session 上调用shutdown 是关闭连接的正确方法。

    您应该安全地将 Session 对象放在手边,并在完成 Cassandra 后将其关闭 - 这可以长期存在。您可以根据需要以Session 对象的形式获取单独的连接,并在完成后将其关闭,但理想情况下,您应该只为每个应用程序创建一个 Session 对象。 Session 是一个相当重量级的对象,它保持与集群中节点的连接池池,因此创建多个连接池将是低效的(并且是不必要的)(taken verbatim from advice given by Sylvain Lebresne on the mailing list)。如果您忘记关闭会话,当您在 shutdown 实例上调用 shutdown 时,它们将全部关闭...下面是非常简单的示例:

    Cluster cluster = Cluster.builder().addContactPoints(host).withPort(port).build();
    Session session = cluster.connect(keyspace);
    
    // Do something with session... 
    
    session.shutdown();
    cluster.shutdown();
    

    【讨论】:

    【解决方案2】:

    请看这里 - http://www.datastax.com/drivers....

    驱动程序以异步方式使用连接。意思是 可以在同一个连接上同时提交多个请求 时间。这意味着司机只需要保持一个相对的 每个 Cassandra 主机的少量连接。这些选项 允许驱动程序控制精确保留的连接数。

    对于每个主机,驱动程序都会保持一个核心连接池完全打开 时间由调用决定。如果这些连接的使用达到 一个可配置的阈值,更多的连接被创建到 可配置的最大连接数。当池超过 最大连接数,如果超出的连接将被回收 打开的连接的使用低于配置的阈值

    这些参数中的每一个都可以分别设置为 LOCAL 和 REMOTE 主机(主机距离)。对于 IGNORED 主机,所有这些主机的默认值 设置为 0,无法更改。

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 1970-01-01
      • 2015-12-18
      • 2013-07-14
      • 2021-02-09
      • 2016-11-29
      • 2016-11-29
      • 2019-11-30
      • 2023-03-21
      相关资源
      最近更新 更多