2017-01-25 2 views
0

Я читаю документацию Apache Curator, но я не могу точно понять, что именно она пытается применить, когда истекает сессия.Как Apache куратор пытается восстановить соединение после окончания сеанса?

Неправильно ли он установил соединение с LOST, или он попытается повторно подключиться и восстановить всех наблюдателей, и только после неудачных попыток N он установит соединение с LOST?

Если он пытается восстановить, будет ли он правильно сбросить эфемерные узлы и часы?

ответ

0

Во-первых, в случае окончания сеанса ZooKeeper (с точки зрения клиента) не происходит, пока вы не восстановите соединение с здоровым ансамблем. т. е. вы не знаете, что ваша сессия закончилась до тех пор, пока вы не восстановите соединение.

Apache Curator (примечание: Я главный автор) представляет концепцию «состояния соединения», которая является абстракцией поверх внутренней концепции состояния ZooKeeper. Важно отметить, что обработка состояния соединения куратора изменилась с версий до 3.x и версий 3.x и выше.

До 3.x состояние подключения куратора не имело отношения к сеансу ZooKeeper. Состояние соединения LOST означает, что сконфигурированная RetryPolicy отказалась. В Curator 3.x и выше, когда соединение с ансамблем потеряно, куратор устанавливает внутренний таймер, и если этот таймер передает согласованный тайм-аут сеанса перед повторным подключением к ансамблю ZooKeeper, куратор изменяет LOST и «подделывает» тайм-аут сеанса до внутренне управляемый дескриптор ZooKeeper.

Это описано здесь: http://curator.apache.org/errors.html

+0

Благодаря @Randgalt, я прочитал документ, но я до сих пор путают. Таким образом, версии 3.x и выше ничего не делают для восстановления соединения после истечения срока действия сеанса (часы/эфемерные узлы), и я должен обрабатывать их вручную правильно? – rodi

+0

Если вы пишете исходные API-интерфейсы, да, вы должны восстановить свои часы (нет способа не делать этого). Однако, если вы используете любой готовый рецепт куратора, все это обрабатывается для вас. Вот почему я всегда говорю: https://cwiki.apache.org/confluence/display/CURATOR/TN6 – Randgalt

Смежные вопросы