Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra java驱动程序警告_Java_Cassandra_Datastax Java Driver - Fatal编程技术网

Cassandra java驱动程序警告

Cassandra java驱动程序警告,java,cassandra,datastax-java-driver,Java,Cassandra,Datastax Java Driver,我一直在日志中看到这条消息,主要是每次查询时 查询选择用户名为col6,性别为col1,姓氏为col2,电子邮件 名为col3,名为col4,某物名为col5,组名为 col7,作为col8删除,作为col9从以下数据中删除 用户名=?;未在/XX.YY.91.205:9042准备,准备之前 重试执行。多次看到此消息是可以的,但是 经常看到它可能是性能问题的根源 查询使用mapper.get(“用户名”)-->com.datastax.driver.mapping.mapper进行 这就是我在构

我一直在日志中看到这条消息,主要是每次查询时

查询选择用户名为col6,性别为col1,姓氏为col2,电子邮件 名为col3,名为col4,某物名为col5,组名为 col7,作为col8删除,作为col9从以下数据中删除 用户名=?;未在/XX.YY.91.205:9042准备,准备之前 重试执行。多次看到此消息是可以的,但是 经常看到它可能是性能问题的根源

查询使用mapper.get(“用户名”)-->com.datastax.driver.mapping.mapper进行

这就是我在构造函数中初始化映射器的方式。此后,我不再使用mappingManager

this.mapper = mappingManager.mapper(MyPojo.class);

有什么线索吗?

看起来您并没有将
MappingManager的实例保留很长时间,而是在每次获取数据时重新创建它。这是一个很大的错误-
MappingManager
应该与
Cluster
Session
对象具有相同的生命周期

映射管理器负责从类中提取字段注释,生成查询,准备查询,然后执行。准备好的查询缓存在mapping manager中,因此当它被破坏时,缓存将丢失,并且当您尝试再次执行
get
时,该过程会重复,导致大量开销-需要再次准备查询,这是一个巨大的网络开销,因此,实际上您的查询要比使用未准备好的查询慢


只需将
MappingManager
实例移动到某个静态块,这样它就可以在所有映射器操作中重用。

您可以放置一段代码来创建
MappingManager
&
mapper
实例吗?我怀疑您没有将
MappingManager
保留在creation@AlexOtt我已经补充了这一点。你的假设是正确的。在构造函数中初始化后,MappingManager不再使用。在什么的构造函数中?是请求还是别的什么?我的问题是-您是否经常重新创建Mapping manager?就像每个get操作一样?我们使用spring中的@Bean创建了MappingManager,但它有一个自定义名称,在存储库中没有使用。在存储库中,它是由spring使用IoC初始化的。