Titan Gremlin 服务器给出错误 "not a WebSocket handshake request: missing upgrade"

标签 titan gremlin rexster tinkerpop3 gremlin-server

我在 EC2 服务器上从 url 下载了 Titan 版本 1.0

Titan 1.0.0 with Hadoop 1 – recommended

然后我使用以下命令解压缩并运行 titan 服务器:

bin/titan.sh start

Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300).... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182).... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

然后我尝试从 Titan 1.0 版本中的 HTTP 请求(在 titan 0.4 版本中 Rexster 工作正常) 但是我遇到了以下错误

not a WebSocket handshake request: missing upgradeTitan 1.0 HTTP Request Error

最佳答案

使用默认设置,您无法通过 HTTP 连接连接到 Titan v1.0.0。更准确地说,您无法通过 HTTP 连接到 Gremlin 服务器。

使用 Titan 时,您还使用 Apache TinkerPop framework 中的 Gremlin 服务器. Gremlin 服务器接受 WebSocket 连接(默认)并将查询转发到 Titan 服务器。

对于随 TinkerPop v3.0.1(因此 Gremlin 服务器 v3.0.1)一起发布的 Titan v1.0.0,您需要在 conf/gremlin-server/中手动配置 HttpChannelizer gremlin-server.yaml 文件:

  channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer

另请参阅:TinkerPop v3.0.1 documentation: Connecting via REST .

这会替换默认的 WebSocketChannelizer 并允许您通过 HTTP 向 Gremlin 服务器发送查询。当您运行 ./bin/titan.sh start 时,您实际上是在启动 Gremlin Server 以及所有与 Titan 相关的东西(默认设置中的 Titan 实例、Cassandra 和 Elasticsearch)。

如果您必须使用浏览器并且仍然希望使用 WebSocket 连接,您可以使用 https://github.com/jbmusso/gremlin-javascript这是 Gremlin 服务器的 JavaScript (Node.js/Browser) 客户端。它支持浏览器中的 WebSocket 连接。使用此设置时,您无需编辑 gremlin-server.yaml 文件中的任何内容。

关于Titan Gremlin 服务器给出错误 "not a WebSocket handshake request: missing upgrade",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266676/

相关文章:

groovy - 如何在 gremlin 中定义返回与 gremlin shell 中相同结果的函数?

apache-spark - 使用 SparkGraphComputer 计算泰坦图上的顶点会抛出 org.apache.spark.SparkException : Job aborted due to stage failure:

python-3.x - Graph Factory 找不到 gremlin.graph 属性配置

.net - 如何使用 Gremlin Cosmos DB 过滤相关对象?

graph - Gremlin 查询以获取给定顶点的进出边

neo4j - 围绕图数据库的炒作......为什么?

docker - 如何使用Rexster Docker镜像和灯泡在TinkerPop/Rextser中创建图形数据库?

titan - 在 Titan 中使用 order().by() 时索引不起作用

java - Cassandra,Titan,致命配置错误

python - 灯泡:仅在尚不存在时创建顶点