Cassandra 不会立即删除数据,它会标记为删除,并在配置的时间后删除。与此同时,您的查询可能需要更长的时间。如果您需要更快地删除数据,则需要运行 compact:
./nodetool compact <ks_name> <cf_name>
在任何情况下,生产中的数据库都需要压缩以保持良好状态。
从 Spring-boot 查询 100K 行在时间上、通过可用带宽传输的信息量和使用的内存方面会很昂贵。您能否发布配置的详细信息并检查 Spring-boot 微服务服务器是否在查询期间内存不足并进行交换?
free -h
更多的东西。您可以检查您从 Spring-boot 查询的节点吗?你能在这里粘贴 Spring-boot 发送的 CQL 吗?您是从 cqlsh 查询该节点/分区上的数据还是查询所有 100K 行?您是否在 Spring-boot 项目中使用负载均衡器、代理服务或任何其他服务(如 Consul)?
为了解决网络问题,ssh 到您期望查询的 cassandra 节点,并使用 tcpdump 检查它是否有效地从您运行微服务的计算机获得连接。
假设带有 spring-boot 的机器是 10.0.10.100,ssh 到您认为正在接收连接的 Cassandra 节点并执行:
sudo tcpdump | grep "10.0.10.100"
现在尝试从 Spring-boot 运行查询。
在 Spring-boot Server 中打开 iftop 并查看从 Cassandra 获取所消耗的带宽。
iftop
希望有帮助。请提供更多信息。
干杯