7

该类的文档com.datastax.driver.core.Session指出

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

然而,EE 环境的一般建议是将池和线程管理留给容器。

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

4

2 回答 2

5

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

于 2013-11-22T21:45:39.427 回答
5

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

无论如何,今天我们有:

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

DataStax 驱动程序允许您配置最大线程池大小,以便您可以控制一切。

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

于 2013-11-23T16:21:59.280 回答