Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform Gremlin客户端通过基于URL的负载平衡器连接到Gremlin/JanusGraph服务器_Google Cloud Platform_Gremlin_Janusgraph_Gremlinpython_Google Cloud Http Load Balancer - Fatal编程技术网

Google cloud platform Gremlin客户端通过基于URL的负载平衡器连接到Gremlin/JanusGraph服务器

Google cloud platform Gremlin客户端通过基于URL的负载平衡器连接到Gremlin/JanusGraph服务器,google-cloud-platform,gremlin,janusgraph,gremlinpython,google-cloud-http-load-balancer,Google Cloud Platform,Gremlin,Janusgraph,Gremlinpython,Google Cloud Http Load Balancer,由于安全策略,我有一个JanusGraph服务器集群(在内部Kubernetes网络中运行),外部Gremlin客户端可以通过以下网络路由访问该集群: 客户端-->全局负载平衡器()-->第三方防火墙-->内部负载平衡器-->图形服务器 全局负载平衡器公开的端点类似于 这种方法适用于基于HTTP的请求,因为当向上述全局负载平衡器端点触发curl命令时,我能够从gremlin服务器接收到响应 但是,我还有另外两种gremlin客户端使用模式: 使用gremlin.sh控制台 使用gremlinpy

由于安全策略,我有一个JanusGraph服务器集群(在内部Kubernetes网络中运行),外部Gremlin客户端可以通过以下网络路由访问该集群:

客户端-->全局负载平衡器()-->第三方防火墙-->内部负载平衡器-->图形服务器

全局负载平衡器公开的端点类似于

这种方法适用于基于HTTP的请求,因为当向上述全局负载平衡器端点触发
curl
命令时,我能够从gremlin服务器接收到响应

但是,我还有另外两种gremlin客户端使用模式:

  • 使用
    gremlin.sh
    控制台
  • 使用
    gremlinpython
    client(或者更一般地说,WebSocket客户端)
  • 因此,我的问题是:

  • gremlin.sh
    客户端使用的
    remote.yaml
    文件中,如何在
    hosts
    port
    参数中指定全局负载平衡器端点

    • 我尝试了几种组合(例如,
      主机
      =['myhost.com']/['myhost.com/mypath1/mypath2'],
      端口
      =8182/443),但它们都不起作用
  • gremlinpython
    客户端中,我使用的是基于WebSocket的连接。如何使用上述端点指定websocket连接字符串

    • 我尝试过各种连接字符串(例如,
      ws://myhost.com/mypath1/mypath2/gremlin
      ),但它们也不起作用
  • 在gremlin.sh客户端使用的remote.yaml文件中,如何在hosts和port参数中指定全局负载平衡器端点

    对于
    hosts
    您应该只提供主机名(无路径),对于port,它应该是443,假设它是您在负载平衡器上公开的端口。当然,您还需要启用SSL—请注意打包的
    remote secure.yaml
    文件中提供的设置,并参阅
    https://tinkerpop.apache.org/docs/current/reference/#_configuration

    至于您的自定义路径
    mypath1/mypath2/gremlin
    ,目前无法配置。它希望路径是
    /gremlin
    。我创造了一个回应

    在gremlin python客户端中,我使用的是基于WebSocket的连接。如何使用上述端点指定websocket连接字符串


    我希望这对Python有用:
    wss://myhost.com:443/mypath1/mypath2/gremlin

    谢谢!对于pythonwebsocket连接字符串,我面临的是
    HTTPError:http599:Timeout-during-request
    error。但我需要在内部检查负载平衡器是否支持WebSocket连接。