Клиент Gremlin, подключающийся к серверу Gremlin / JanusGraph через балансировщики нагрузки на основе URL - PullRequest
0 голосов
/ 30 мая 2020

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

клиенты -> глобальный балансировщик нагрузки ( на основе URL ) -> сторонний брандмауэр -> внутренний балансировщик нагрузки -> графические серверы

Конечная точка, предоставляемая глобальным балансировщиком нагрузки, выглядит примерно так, например, https://myhost.com/mypath1/mypath2/

Этот подход отлично работает для запросов на основе HTTP (S), так как я могу получить ответ от сервера gremlin при запуске команды curl в указанную выше конечную точку глобального балансировщика нагрузки .

Однако у меня есть 2 других шаблона использования клиента gremlin:

  1. с использованием gremlin.sh консоли
  2. с использованием gremlin-python клиента (или, в более общем смысле, клиентов WebSocket. )

Отсюда мои вопросы:

  1. В файле remote.yaml, используемом клиентом gremlin.sh, как мне указать конечную точку глобального балансировщика нагрузки в параметры hosts и port ters?

    • Я пробовал несколько комбинаций (например, hosts = ['myhost.com'] / ['myhost.com/mypath1/mypath2'], port = 8182/443 ), но все они не работают
  2. В клиенте gremlin-python я использую соединение на основе WebSocket. Как мне указать строку подключения веб-сокета с указанной выше конечной точкой?

    • Я пробовал различные строки подключения (например, ws(s)://myhost.com/mypath1/mypath2/gremlin), но они тоже не работают

1 Ответ

1 голос
/ 01 июня 2020

В файле remote.yaml, используемом gremlin. sh клиент, как мне указать глобальную конечную точку балансировщика нагрузки в параметрах хостов и портов?

Для hosts вы должны просто указать имя хоста (без пути), а для порта оно должно быть 443, если это порт, который вы указали в балансировщике нагрузки. Конечно, вам также необходимо включить SSL - например, , например , обратите внимание на настройки, предоставленные в упакованном файле remote-secure.yaml, и просмотрите дополнительные параметры конфигурации в https://tinkerpop.apache.org/docs/current/reference/#_configuration.

Что касается вашего пользовательского пути mypath1/mypath2/gremlin, его нельзя настроить в настоящее время. Ожидается, что этот путь будет /gremlin. В ответ я создал TINKERPOP-2379 .

В клиенте gremlin- ​​python я использую соединение на основе WebSocket. Как мне указать строку подключения веб-сокета с указанной выше конечной точкой?

Я ожидал, что это сработает для Python: wss://myhost.com:443/mypath1/mypath2/gremlin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...