当前位置: 首页 > 知识库问答 >
问题:

我应该调用会话关闭()和集群。close() 在每次 Web API 调用后

沃驰
2023-03-14

我有一个网络服务API,允许客户端插入到Cassandra中。我阅读了datastax(http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Session.html)页面上的文档,指出我们应该保留会话和集群对象直到应用程序结束。我想知道我应该在每次调用Web API调用后调用会话.close()和集群.close(),还是只保留会话直到关闭Web服务器?

共有1个答案

刘兴修
2023-03-14

我建议不要在每次收到请求时都创建一个< code >会话。每次您通过< code>Cluster.connect创建< code >会话时,java驱动程序都会创建一个连接池,连接到您的Cassandra集群的多个主机。

例如,使用默认设置,如果您在单个数据中心有8个cassandra节点,使用2.0.9版本的驱动程序,它将为每个主机创建8个池连接(在下一个版本中将变为2个)。这将在您每次创建< code >会话时创建64个连接。

最好有一个您的 Web 服务器可以使用的共享会话。驱动程序可以管理每个连接的多个请求(在 2.0.x 中默认为每个连接 128 个请求),因此无需担心共享单个会话对象时的争用。

 类似资料:
  • 我正在使用Hibernate 5.0.2.Final进行数据源连接(在Tomcat 8.0.15上),并开始问自己是否不仅需要关闭会话,还需要关闭会话工厂? 现在它看起来像这样: hibernate.cfg.xml中的一些细节 以及HibernateUtil: 我不知道是否有必要在finally-block中调用这个方法,而不仅仅是关闭会话:

  • 问题内容: 我无法通过一些Google搜索找到权威的答案。在Java Servlet中,可以通过response.getOutputStream()或response.getWriter()访问响应主体。写入流后,是否应该在此流上调用.close()? 一方面,Blochian鼓励始终关闭输出流。另一方面,我不认为在这种情况下有需要关闭的基础资源。套接字的打开/关闭在HTTP级别进行管理,以允许诸

  • 我是RxJava新手,目前正在使用RxJava版本1。我的用例就像我必须进行一次rest API调用(使用rest模板)。因此,使用调度器是更好的主意吗。在这种情况下,每次都可以使用computation()或任何调度器。 我的课程是 SampleController。Java语言 服务Java语言 在这里,我使用Schedulers来启动新线程。但我再次使用延迟结果进行即时响应,Spring将把

  • 我正在为Kafka的客户librdkafka工作。lib在这里https://github.com/edenhill/librdkafka/blob/master/examples/rdkafka_example.cpp.每次调用Producer类中的product()时,是否调用dr\u cb()函数(请参见以下代码)?

  • 问题内容: 调用重定向函数标头后,是否应该调用exit? 谢谢 问题答案: 你绝对应该。否则脚本执行不会终止。仅设置另一个标头不足以重定向。

  • 问题内容: 每次调用时,React都会重新渲染所有组件和子组件吗? 如果是这样,为什么?我以为这个想法是,当状态改变时,React只渲染所需的内容。 在下面的简单示例中,尽管onClick处理程序始终将设置为相同的值,但是在随后的单击中状态不会改变,这两个类在单击文本时都再次呈现。 我曾希望只有在数据更改的情况下才会进行渲染。 这是示例代码,例如JS Fiddle和嵌入式代码段: 问题答案: 每次