Каковы плюсы и минусы при использовании удаленного соединения janusgraph через встроенный? - PullRequest
4 голосов
/ 08 марта 2019

Я использую встроенный janusgraph в своем java-интерфейсе, мой код зависит от janusgraph, инстанцированного с graph = JanusGraphFactory.open(conf)

AFAIK, он напрямую соединяется с Cassandra и эластичным поиском и запускает процессор janusgraph в моем бэк-приложении JVM.Но если я хочу масштабировать janusgraph, мне нужно запустить отдельные серверы janusgraph в кластере и подключиться к этим серверам в качестве клиента из моего бэкэнда.

В соответствии с примером удаленного janusgraph на github это достигается с помощью создания экземпляра EmptyGraph graph = EmptyGraph.instance();, который не является экземпляром JanusGraph, но org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;.

, который я могу понятьИсходя из приведенного выше примера, я могу использовать только запросы gremlin, отправляя их на сервер janusgraph, но я не смогу использовать API-интерфейсы управления напрямую, если не отправлю код в виде строки на сервер.

Наконец, я могу понять, что для масштабируемости лучше запускать сервер janusgraph отдельно, но я потеряю прямой доступ в своем коде к janusgraph apis, поэтому я хочу знать, что что-то, что я пропускаю, понять и чтоКаковы плюсы и минусы в подходе удаленного развертывания и что я потеряю от встраиваемого подхода?

Редактировать:

Согласно этому ответу исправить это, если не так :

Плюсы / минусы подключения к удаленному серверу gremlin

Плюсы

  • Сервер имеет гораздо больше контроляи все запросы централизованы.
  • Поскольку каждый из них выполняет обход / запросы через удаленный сервер gremlin, все они защищены транзакциями.Удаленный сервер gremlin по умолчанию выполняет ваши обходы / запросы в транзакции.
  • Централизованное управление стратегиями
  • Централизованное управление схемами

Минусы

  • Трудно выполнить ручное управление транзакциями
  • Вы должны использовать groovy-скрипт в качестве строки и отправить его для удаления (Cluster submit) для транзакционного исполнения вашего кода.
...