对于我的应用程序的操作监视,我正在寻找类似于常用的"SQL连接验证"查询
选择1;
在Cassandra,使用Hector驱动程序.我尝试过像Cluster.getKnownPoolHosts()和.getConnectionManager().getActivePools()这样的事情.但是,只有当我真正尝试使用查询访问Cassandra时,它们的状态似乎才会不断更新.
我希望我的运行状况检查独立于任何需要存在的键空间或用户CF,因此只运行"虚拟"查询似乎很困难(针对什么?).当然,它不应占用大量内存或产生任何重大负载.
我可以以某种方式强制Hector更新其连接池状态而不运行真正的查询吗?
(顺便说一句:CQL甚至不接受"SELECT 1"作为有效查询.)
Eem*_*ola 14
使用CQL3,我使用以下查询:
SELECT now() FROM system.local;
Run Code Online (Sandbox Code Playgroud)
如果用户由于某种原因无法访问system键空间或local列族,那么摆脱FROM子句altogther以使其成为通用的将是很好的.但与其他答案一样,至少这不应该给出误报.
我当前使用的解决方案似乎是迄今为止最强大的解决方案(使用 Cassandra 1.1 和 1.2 进行测试)是对“system”的简单查询:
Query<String> query = Query.selectQuery("*", "system", null, 1, consistencyLevel, StringSerializer.get());
这并不完全是我想要的,因为它是一个“真实”查询,但另一方面它不会给出任何误报。
| 归档时间: |
|
| 查看次数: |
9985 次 |
| 最近记录: |