我在计算机上运行Titan / Rexter,在Titan图形DB上运行Cassandra的3节点集群作为storage.backend。我想配置Rexster,以便连接到Cassandra集群的所有3个节点。我已经将cassandra的所有节点的ip-address列为逗号分隔,如下所示。
<graph>
<graph-name>graph</graph-name>
...
<properties>
<storage.backend>cassandrathrift</storage.backend>
<storage.hostname>10.240.182.197,10.240.166.40,10.240.78.153</storage.hostname>
...
</properties>
</graph>
但看起来,Rexster只连接到第一个节点&#34; 10.240.182.197&#34;,意味着如果我关闭节点 - 10.240.182.197,Rexster无法连接到其他节点并且抛出哪个节点例外
Rexster启动日志
[INFO] RexsterApplicationGraph - Graph [graph] - configured with allowable namespace [tp:gremlin]
**[INFO] GraphConfigurationContainer - Graph graph - titangraph**[cassandrathrift:10.240.182.197]** loaded**
[INFO] RexsterApplicationGraph - Graph [tinkergraph] - configured with allowable namespace [tp:gremlin]
[INFO] GraphConfigurationContainer - Graph tinkergraph - tinkergraph[vertices:0 edges:0 directory:data/graph-example-1] loaded
[更新] 我改变了配置来自&#34; cassandrathrift&#34;到&#34; cassandra&#34;现在它能够连接到所有节点。
现在我的问题是为什么&#34; cassandrathrift&#34; API无法连接到其他节点? 使用&#34; cassandrathrift&#34;有什么区别?和&#34; cassandra&#34; ?专业人士利弊? 哪一个加载和检索数据到图表更快?
答案 0 :(得分:0)
“Cassandrathrift”适配器本身没有智能来进行负载平衡或节点发现。它总是尝试连接到第一个列出的host-ip,没有负载平衡,当ip1关闭时,Rexster停止。 使用astyanax适配器,将获得自动振铃发现和故障检测。将storage.backend设置为“cassandra”,如下所示。
修改后的配置(rexster.xml): -
<graph>
<graph-name>graph</graph-name>
...
<properties>
<storage.backend>cassandra</storage.backend>
<storage.hostname>10.240.182.197,10.240.166.40,10.240.78.153</storage.hostname>
...
</properties>
</graph>
此反弹之后,titan / rexster连接到所有节点。