该类的文档com.datastax.driver.core.Session指出
(...) 每个会话维护到集群节点的多个连接 (...)
然而,EE 环境的一般建议是将池和线程管理留给容器。
在我看来,主要针对 EE 环境的 DataStax 驱动程序违反了此规则。这让我担心驱动程序是否可以在我的 EE 应用程序中安全使用。
该类的文档com.datastax.driver.core.Session指出
(...) 每个会话维护到集群节点的多个连接 (...)
然而,EE 环境的一般建议是将池和线程管理留给容器。
在我看来,主要针对 EE 环境的 DataStax 驱动程序违反了此规则。这让我担心驱动程序是否可以在我的 EE 应用程序中安全使用。
无论环境如何,拥有多个连接的优点是 Java 客户端可以识别令牌。这意味着它知道数据在集群中的位置,因此它可以向正确的节点发起查询,从而避免不必要地查找其他节点以查找该节点不拥有的数据。此外,客户端知道集群及其状态,它可以透明地将失败的请求重定向到其他节点。如果您只与一台机器保持一个连接,您的应用程序会天真地触发请求。
我记得那个建议。我认为这是一个古老的建议,旨在强调在大多数情况下,应用程序不应该尝试对容器进行额外的线程管理(这里的关键词是“容器”)。也搞乱线程可能会导致过度利用服务器的资源。在单核/双核时代,这非常重要。
无论如何,今天我们有:
DataStax 驱动程序允许您配置最大线程池大小,以便您可以控制一切。
最后,我认为使用驱动程序应该是相当安全的。您可以根据您的应用需求和服务器资源调整线程池。