Как настроить несколько узлов cassandra как storage.backend в конфигурации Rexster?

У меня есть Titan / Rexter, работающий на машине, и кластер Cassandra с 3 узлами в качестве storage.backend для графической базы данных Titan. Я хочу настроить Rexster, чтобы подключиться ко всем 3 узлам кластера Cassandra. Я перечислил IP-адреса всех узлов cassandra через запятую, как указано ниже.

<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 подключается только к первому узлу только "10.240.182.197", что означает, что если я отключу узел - 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

[обновление] Я изменил конфигурацию с «cassandrathrift» на «cassandra», и теперь она может подключаться ко всем узлам.

Теперь мой вопрос: почему API «cassandrathrift» не может подключаться к другим узлам? В чем разница в использовании «cassandrathrift» и «cassandra»? за и против? какой из них быстрее загружает и извлекает данные в граф?


person Remis Haroon - رامز    schedule 08.04.2015    source источник
comment
Только что увидел этот комментарий в группах Google - Cassandrathrift работает напрямую с настроенными узлами и не имеет никакой логики аварийного переключения. Astyanax делает это, но иногда возникают проблемы с AWS. groups.google.com/forum/#!search/   -  person Remis Haroon - رامز    schedule 08.04.2015
comment
добавление еще одной ссылки на официальную документацию по настройке cassandra через Titan - github.com/thinkaurelius/titan /wiki/Использование-Кассандры   -  person Remis Haroon - رامز    schedule 08.04.2015
comment
Что заставляет вас говорить, что он подключается только к первому узлу?   -  person stephen mallette    schedule 08.04.2015
comment
@stephenmallette, когда я отключил первый узел, а затем rexter выдал исключение, мне не удалось подключиться, но если я отключу другие узлы, все работает нормально.   -  person Remis Haroon - رامز    schedule 08.04.2015
comment
Не могли бы вы попробовать провести такой же эксперимент с консолью Titan Gremlin? используйте TitanFactory, чтобы открыть график с той же конфигурацией, что и выше, затем отключите различные узлы, чтобы увидеть, каковы ваши впечатления от консоли.   -  person stephen mallette    schedule 08.04.2015
comment
@stephenmallette Журнал запуска rexster [INFO] RexsterApplicationGraph — График [graph] — настроен с допустимым пространством имен [tp:gremlin] [INFO] GraphConfigurationContainer — Graph graph — titangraph [cassandrathrift:10.240.182.197]** загружен** загружен [INFO] RexsterApplicationGraph - График [tinkergraph] - настроен с допустимым пространством имен [tp:gremlin] [INFO] GraphConfigurationContainer - Graph tinkergraph - загружен tinkergraph[вершины:0 ребер:0 каталог:данные/граф-пример-1]   -  person Remis Haroon - رامز    schedule 08.04.2015
comment
@stephenmallette Я изменил конфигурацию ‹storage.backend› с cassandrathrift на cassandra, и теперь он может подключаться ко всем узлам, я не могу проверить отработку отказа до сих пор, так как сейчас выполняю тест загрузки данных.   -  person Remis Haroon - رامز    schedule 09.04.2015


Ответы (1)


Адаптер «Cassandrathrift» не обладает интеллектом для балансировки нагрузки или обнаружения узлов сам по себе. Он всегда пытается подключиться к первому указанному 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>

После этого отскочит титан/рекстер и подключится ко всем узлам.

Ссылка : Aurelius › Высокая доступность Rexster/Titan-Cassandra

person Remis Haroon - رامز    schedule 09.04.2015