Fro*_*bit 5 cassandra hector astyanax
我们有一个创造性地命名为"bootstrap"的过程,它为环境中的给定rev软件设置我们的Cassandra集群(Dev1,Dev2,QA,...,PROD).此引导程序创建/更新键空间和列族以及在非prod中填充初始数据.
我们正在使用Astyanax,但我们可以使用Hector进行自举.
鉴于另一个团队已决定每个环境都有自己的数据中心名称.而且,当我们从两个数据中心转到更多数据中心时,我希望这可以在prod中工作.鉴于我们将使用PropertyFileSnitch:
我如何询问Cassandra集群的布局?(没有炮击nodetool ring)
具体来说,我需要知道数据中心的名称,以便在使用NetworkTopologyStrategy时可以使用正确的策略选项设置创建或更新密钥空间.我们希望每个数据中心有3个副本.有些envs有一个和几个有两个,最终生产会有更多.
是否有CQL或Thrift调用可以提供有关群集布局的信息?
我已经查看了各种文档集中的几个TOC,并用Google搜索了一下.我想在挖掘nodetool代码之前我会问这里.
我不确定 Hector 或 Astyanax 如何揭露这一点,但基本的 Thrift 方法describeRing(keyspace)应该可以满足您的需求。它包含的部分信息是EndpointDetails如下所示的结构:
endpoint_details=[EndpointDetails(datacenter='datacenter1', host='127.0.0.1', rack='rack1')]
Run Code Online (Sandbox Code Playgroud)
连同该方法的其余结果一起,您应该能够计算出集群中每个节点的令牌、DC、机架等。
由于您使用的是 Java 客户端,因此您还可以使用一些 JMX 方法(nodetool 使用的)来描述集群的更多选定部分。例如,您可能会查看 snitch mbean ( "org.apache.cassandra.db:type=EndpointSnitchInfo"),特别是getDatacenter(ip)和getRack(ip)方法。
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |