我正在用java开发一个应用程序。目标是模拟多个用户连接到cassandra(并发连接),所有用户都连接到同一个集群。我的问题是:我是否应该实现多个会话,其中每个会话模拟一个用户。或者整个应用程序只有一个会话。?如果可能的话,如何实现多个会话。?如有参考或例证,不胜感激。
55ooxyrt1#
对于并发请求,应该始终考虑使用带有连接池的单个会话。如果会话出错,可以构建重试机制。已经说过,从技术上讲,您可以创建冗余会话,驱动程序将允许它。
92dk7w1h2#
理想情况下,您应该只使用一个 Cluster / Session 每个应用程序的对象 Session 对象创建一个到集群每个节点的连接池+一个控制连接以获取有关架构和拓扑更改等的通知,连接太多会给节点增加额外的负载。如文档中所述,单个网络连接可以同时执行多个请求,如果需要,可以增加飞行中的请求数,但不建议设置得太高,因为大量的运行中请求表明节点不能如此快速地执行查询—如果运行的查询使用 ALLOW FILTERING ,或获取过多数据。您可以在datastax的指南“使用datastax驱动程序开发应用程序”中找到更多信息。
Cluster
Session
ALLOW FILTERING
2条答案
按热度按时间55ooxyrt1#
对于并发请求,应该始终考虑使用带有连接池的单个会话。如果会话出错,可以构建重试机制。已经说过,从技术上讲,您可以创建冗余会话,驱动程序将允许它。
92dk7w1h2#
理想情况下,您应该只使用一个
Cluster
/Session
每个应用程序的对象Session
对象创建一个到集群每个节点的连接池+一个控制连接以获取有关架构和拓扑更改等的通知,连接太多会给节点增加额外的负载。如文档中所述,单个网络连接可以同时执行多个请求,如果需要,可以增加飞行中的请求数,但不建议设置得太高,因为大量的运行中请求表明节点不能如此快速地执行查询—如果运行的查询使用ALLOW FILTERING
,或获取过多数据。您可以在datastax的指南“使用datastax驱动程序开发应用程序”中找到更多信息。