idleConnectionTimeout в драйвере Gremlin - PullRequest
0 голосов
/ 17 апреля 2019

У меня на локальном хосте запущено приложение (на котором работает драйвер gremlin), сервер gremlin на удаленном хосте и промежуточный балансировщик нагрузки.

Я настроил keepAliveInterval драйвера Gremlin, чтобы поддерживать соединение между моим локальным хостом и балансировщиком нагрузки открытым, но каким-то образом соединение все равно теряется.(Интервал ожидания в балансировщике нагрузки больше, чем keepAliveInterval, настроенный мной в драйвере Gremlin).

Я проверил журнал и обнаружил, что после разрыва соединения драйвер Gremlin все еще отправляет сообщение поддержания активности на балансировщик нагрузки, но он не получил никакого ответа и также не смог его обнаружить..

Мне интересно, есть ли способы узнать, что ответ о поддержании активности не получен, или есть какие-то конфигурации, которые я могу сделать, например IdleConnectionTimeout на сервере Gremlin, чтобы драйвер gremlin мог реализоватьсохранить в живых запрос не получает ответа?

1 Ответ

0 голосов
/ 17 апреля 2019

Процесс поддержки драйвера не очень устойчив, так как он немного избыточен для поддержки на стороне сервера. Драйвер проглатывает исключения, связанные с отправкой своих собственных сообщений keep-alive, и регистрирует только сообщение WARN, поэтому вам придется найти сообщение в журнале, чтобы определить, произошла ли ошибка.

Я не уверен, что приводит вашу среду в состояние, когда балансировщик нагрузки теряет соединение. И сервер, и драйвер работают вместе, чтобы поддерживать соединение. Когда драйвер находится в режиме ожидания, после превышения keepAliveInterval будет отправлено подтверждение активности, что должно сбросить состояние ожидания как для драйвера, так и для сервера. На сервере отслеживается состояние простоя чтения и записи (соответственно idleConnectionTimeout и keepAliveInterval), и клиент отправляет подтверждение активности. С любого конца ping (сервер или клиент) должен быть возвращен pong. Интересно, есть ли состояние балансировщика нагрузки, которое разрывает соединение, если "пинг" не приходит со стороны клиента?

...