DataStax Java驱动程序可以安全地用在EE容器中吗?

Sch*_*ser 7 java java-ee cassandra datastax-java-driver

com.datastax.driver.core.Session该类的文档说明了这一点

(...)每个会话维护与群集节点的多个连接(...)

但是,对EE环境的一般建议是将池和线程管理留给容器.

在我看来,DataStax驱动程序(主要不是针对EE环境)违反了这一规则.这让我担心驱动程序是否可以在我的EE应用程序中安全使用.

rs_*_*atl 5

无论环境如何,具有多个连接的优点是Java客户端具有令牌识别功能.这意味着它知道数据在集群中的位置,因此它可以触发对正确节点的查询,从而避免对节点不拥有的数据的其他节点进行不必要的查找.此外,客户端知道群集及其状态,并且可以透明地将失败的请求重定向到其他节点.如果您只保持与一台计算机的一个连接,那么您的应用程序将会天真地触发请求.


Ale*_*scu 5

我记得那个建议.我认为这是一个旧的建议,意在强调在大多数情况下,应用程序不应该尝试为容器进行额外的线程管理(这里的关键词是"容器").搞乱线程可能会导致过度使用服务器的资源.在单核/双核的时代,这非常重要.

无论如何,今天我们有:

  1. 更多核心
  2. 更多使用异步模型的应用程序

DataStax驱动程序允许您配置最大线程池大小,以便您可以控制内容.

最后,我认为使用驱动程序应该是非常安全的.您可以根据应用程序需求和服务器资源调整线程池.