java – 如何以编程方式获取Cassandra版本
发布时间:2020-12-15 04:22:45 所属栏目:Java 来源:网络整理
导读:我在 Java 7中使用com.datastax.cassandra cassandra-driver-core version 1.0.0连接到Apache Cassandra(版本1.2.12).虽然1.2.12是我今天使用的版本,但该版本可能会发生变化,如果可能的话,我想知道如何以编程方式检索Cassandra的版本(大概是使用驱动程序,尽
我在
Java 7中使用com.datastax.cassandra cassandra-driver-core version 1.0.0连接到Apache Cassandra(版本1.2.12).虽然1.2.12是我今天使用的版本,但该版本可能会发生变化,如果可能的话,我想知道如何以编程方式检索Cassandra的版本(大概是使用驱动程序,尽管我对其他人开放建议).
我找到了Cluster.getMetadata()和Cluster.getMetadata.getKeyspace(),它们分别返回了一个Metadata对象和一个KeyspaceMetadata对象,但是这些对象似乎都没有任何返回版本的方法. 任何帮助表示赞赏 回答 感谢米哈伊尔和布莱斯,我想出了答案.此方法返回Cassandra版本,如果群集已关闭,则返回“Offline”.我已经测试了这段代码,它完美无瑕. private String getCassandraVersion() { String[] cassandraServers = <insert your servers here>; String keyspace = "system"; Session session = null; try { Cluster cluster = Cluster.builder().addContactPoints(cassandraServers) .build(); session = cluster.connect(keyspace); PreparedStatement ps = session.prepare("select release_version from system.local where key = 'local'"); ResultSet result = session.execute(ps.bind()); Row versionRow = result.one(); if (versionRow != null) { return versionRow.getString("release_version"); } } catch (Exception ex) { _log.error("Failed to connect to '" + keyspace + "' keyspace!"); } finally { if(session != null) { try { session.shutdown(); } catch (Exception ex) { //NOP } } } return "Offline"; } 再次感谢你们! 解决方法
您可以从Cassandra查询版本:从system.local中选择release_version,其中key =’local’;
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |