如何在Rexster配置中将多个cassandra节点配置为storage.backend?

时间:2015-04-08 03:44:44

标签: cassandra graph-databases titan rexster

我在计算机上运行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; ?专业人士利弊? 哪一个加载和检索数据到图表更快?

1 个答案:

答案 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连接到所有节点。

参考:Aurelius › Rexster/Titan-Cassandra high availability