如何将 cassandra 会话用于多个线程?

Bud*_*ddy 4 java session multithreading cassandra

我在 web 应用程序中使用 cassandra 作为后端(在 java 中),每个用户需要创建唯一会话或使用单个会话,如下面的 url?

我在此链接中阅读了会话信息。 https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/Session.html

它说 Session 实例是线程安全的。意味着一次一个线程可以使用这个实例。

还写到每个会话维护到集群节点的多个连接。

问题是

  1. 如果只有一个线程可以在会话实例上使用,那么为每个会话创建到集群节点的多个连接有什么用?
  2. 它不会减慢会话上的多线程操作吗?

ESa*_*ala 6

你错了,与不同的线程共享一个实例是安全的:

会话保持与 Cassandra 集群的连接,允许对其进行查询。每个会话维护到集群节点的多个连接......

会话实例是线程安全的,通常每个应用程序一个实例就足够了。

线程安全意味着与其他线程共享实例是安全的。这并不意味着您只能从一个中使用它。

  • @Buddy 根据您的评论,我仍然认为您对“线程安全”的含义感到困惑。您刚才说*“一个线程一次访问一个会话(在哪个连接下)”*。这个不对。您可以与多个线程共享会话,这就是会话中有多个连接的原因。请再次阅读我的回答:) (2认同)