На GremlinServers высокая доступность

Читая документацию по Janusgraph, я понимаю, что высокая доступность существует только в системе хранения или бэкэнде. (Кассандра). Но есть ли высокая доступность на GremlinServers?

Например в режиме 16.3. Режим удаленного сервера с сервером Gremlin. Я так понимаю, что колесо с зубьями - это мое приложение

образ архитектуры

Если у меня отключится электричество на сервере Gremlin, два сервера, подключенные к серверу gremlinserver, не будут обслуживаться. В gremlinserver нет отказоустойчивых или отказоустойчивых функций?

Я использую файл свойств с двумя параметрами:

GremlinServerHost = 127.0.0.1
GremlinServerPort = 8182

Установить пружину с DI

<bean id="gremlinCluster" class="[FQDN].pool.GremlinCluster" scope="singleton" destroy-method="destroy">
    <constructor-arg name="server"><value>${GremlinServerHost}</value></constructor-arg>
    <constructor-arg name="port"><value>${GremlinServerPort}</value></constructor-arg>
</bean>

private Cluster init() {
..
..
        Cluster cluster = Cluster.build(server).port(port)
..
;

..

И реализация

Cluster cluster = gremlinCluster.getCluster();
        Client client = null;
        try {
            client = cluster.connect();
            String gremlin = "[Query Gremlin ...   ]"

person lubican    schedule 22.11.2017    source источник


Ответы (1)


Экземпляры Gremlin Server не знают друг друга, однако в зависимости от того, как вы настроили драйвер TinkerPop в своем приложении, вы получите некоторый уровень аварийного переключения в том смысле, что если драйвер обнаружит мертвый сервер, он примет это к сведению и затем отправляйте запросы только на другие доступные серверы, которые вы настроили. В фоновом режиме он будет постоянно пытаться повторно подключиться к мертвому серверу, и, если он вернется в сеть, включит его в пул серверов, на который он будет отправлять запросы.

Итак, в предложенном вами сценарии, пока есть доступный сервер, ваше приложение не должно знать разницы. Конечно, это означает, что оставшиеся активные серверы будут брать на себя нагрузку других частей приложения.

Обратите внимание, что если вы используете сеансы с вашим драйвером, сеанс будет потерян для отказавшего сервера. Информация о сеансе не передается экземплярам Gremlin Server. Таким образом, чтобы получить любую форму высокой доступности, вам необходимо убедиться, что вы используете бессессионную связь.

person stephen mallette    schedule 22.11.2017
comment
Большое спасибо за Вашу помощь. Где я могу найти примеры или документацию по настройке драйвера TinkerPop с переключением при отказе. - person lubican; 22.11.2017
comment
Я не знаю, чтобы кто-нибудь писал по этой конкретной теме, но в основном вы хотите посмотреть на эти параметры конфигурации: tinkerpop.apache.org/docs/current/reference / # _ configuration - на самом базовом уровне настройте параметр hosts в объекте драйвера Cluster, чтобы вывести список всех ваших экземпляров сервера Gremlin. - person stephen mallette; 22.11.2017
comment
Еще раз большое спасибо. Я понял - person lubican; 22.11.2017