繁体   English   中英

如何关闭Database Connection Datastax Java Driver

[英]How do I close Database Connection Datastax Java Driver

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

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

关心高拉夫

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

你可以安全地保留一个Session对象并在你完成Cassandra时关闭它 - 这可能是长寿的。 您可以根据需要以Session对象的形式获取单个连接,并在完成后将其关闭,但理想情况下,您应该只为每个应用程序创建一个Session对象。 Session是一个相当重量级的对象,它将连接池池保存到集群中的节点,因此创建多个这些池将是低效的(并且是不必要的)( 从Sylvain Lebresne在邮件列表上给出的建议中逐字逐句 )。 如果您忘记关闭会话,当您在Cluster实例上调用shutdown时,它们将全部关闭...下面是一个非常简单的示例:

Cluster cluster = Cluster.builder().addContactPoints(host).withPort(port).build();
Session session = cluster.connect(keyspace);

// Do something with session... 

session.shutdown();
cluster.shutdown();

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

驱动程序以异步方式使用连接。 这意味着可以同时在同一连接上提交多个请求。 这意味着驱动程序只需要维护与每个Cassandra主机相对较少的连接数。 这些选项允许驱动程序控制准确保存的连接数。

对于每个主机,驱动程序始终通过调用确定打开的核心连接池。 如果这些连接的使用达到可配置的阈值,则会创建更多连接,直到可配置的最大连接数。 当池超过最大连接数时,如果使用打开的连接低于配置的阈值,则回收超出的连接

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM