我正在使用Datastax Java驱动程序,有一个教程可以使用。
我不理解的是,如何关闭与cassandra的连接?没有可用的close方法,我假设我们不想关闭Session,因为它期望每个应用程序只有一个。
问候, Gaurav
我不理解的是,如何关闭与cassandra的连接?没有可用的close方法,我假设我们不想关闭Session,因为它期望每个应用程序只有一个。
问候, Gaurav
小结:调用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主机的相对较少数量的连接。这些选项允许驱动程序精确控制保留多少连接。
对于每个主机,驱动程序始终保持一组核心连接,该组由调用{{core pool of connections}}确定。如果这些连接的使用达到可配置阈值{{configurable threshold}},则会创建更多连接,最多创建可配置的最大连接数。当池超过最大连接数时,如果打开连接的使用量低于已配置的阈值,则会回收超过的连接。
每个这些参数都可以分别设置为LOCAL和REMOTE主机(HostDistance)。对于IGNORED主机,所有这些设置的默认值均为0,无法更改。
shutdown
方法。您必须使用它们类的close
方法。session.close(); cluster.close();
- Hosein Masbough