Gremlin 我可以强制GLV使用HTTP而不是WS吗?

Gremlin 我可以强制GLV使用HTTP而不是WS吗?,gremlin,tinkerpop3,gremlin-server,Gremlin,Tinkerpop3,Gremlin Server,与需要来自无服务器基础设施的持久连接的数据库进行对话越来越流行。虽然websocket连接的建立不是很重要,但我认为说HTTP更适合我的无服务器用例,我想知道是否可以强制GLV说HTTP而不是WS。如果不支持,它是否会增加支持该功能的价值?当前的解决方法是自己构造HTTP请求,但是编写遍历图形的java代码看起来比创建带有字符串有效负载的HTTP请求要干净得多。Gremlin Language Variants(GLV)无法通过HTTP进行对话。这是一个明确的设计选择。Websockets使结果

与需要来自无服务器基础设施的持久连接的数据库进行对话越来越流行。虽然websocket连接的建立不是很重要,但我认为说HTTP更适合我的无服务器用例,我想知道是否可以强制GLV说HTTP而不是WS。如果不支持,它是否会增加支持该功能的价值?当前的解决方法是自己构造HTTP请求,但是编写遍历图形的java代码看起来比创建带有字符串有效负载的HTTP请求要干净得多。

Gremlin Language Variants(GLV)无法通过HTTP进行对话。这是一个明确的设计选择。Websockets使结果流回到客户端成为可能,而不是在内存中建立一个大的结果集,以在HTTP负载中返回。Gremlin服务器中以Gremlin字符串为参数的HTTP端点主要是作为TinkerPop 2.x和Rexster之间的桥梁而构建的,这两个版本都是面向REST的,但TinkerPop并不建议以这种方式构建应用程序。

谢谢。这可能是一个范围更广的后续问题,但对于从无服务器基础架构谈论Gremlin,有什么建议?一种选择是在这些无服务器函数的全局上下文中初始化集群,然后通过定期调用它们来保持集群温暖。另一个选项是服务器支持某种类型的连接重复数据消除,这样一个新的gremlin集群就可以尝试重新建立与以前打开的服务器连接的连接。.用Java术语来说,
cluster
对象应该通过定期发出websocket ping来保持您的连接处于活动状态。如果您有一个全局上下文的概念,在其中存储
集群
对象,我认为它只会从该上下文发出那些ping。你看到了什么不同吗?到目前为止我支持你。但是,无服务器基础设施几乎总是包含一个冷却逻辑,如果有一段时间没有触发无服务器功能(或者如果通信量很低),它们要么将容器置于休眠状态(或者如果认为容器处于非活动状态,则将其拆下)。所以当这种情况发生时,我们就不会发送那些websocket ping了。当容器再次被唤醒时,数据库服务器将终止过时的连接。嗯,我对这些系统不太了解,但似乎越来越多的人在询问它们。创建新连接的成本并不太高,是吗?我认为,如果容器以合理的速度连续在线/离线足够多的时间,服务器将有大量TCP连接等待清理。这就是你担心的吗?或者别的什么?在我的观察中,建立连接需要将近一秒钟的时间,但如果我们只是在冷启动时这样做,那也不算太糟糕。服务器有太多的连接对我来说不是什么大问题(假设实现服务器是为了杀死过时的连接),在这种情况下,我只担心P99的延迟。谢谢,我想我得到了我在这里寻找的答案。如果你感兴趣的话,我确实试着在无服务器标签中问了一个问题!