Titan Gremlin服务器出现错误:“不是WebSocket握手请求:缺少升级”。

3
我从以下链接在EC2服务器上下载了Titan 1.0版本:

Titan 1.0.0 with Hadoop 1 – 推荐使用

然后我解压缩并使用以下命令运行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正常工作)。 但是我遇到了以下错误

不是WebSocket握手请求:缺少升级Titan 1.0 HTTP Request Error

1个回答

7
使用默认设置时,您无法通过HTTP连接访问Titan v1.0.0。更准确地说,您不能通过HTTP连接访问Gremlin Server。
在使用Titan时,您还将使用来自Apache TinkerPop框架的Gremlin Server。Gremlin Server接受WebSocket连接(默认)并将查询转发到Titan服务器。
对于随TinkerPop v3.0.1(因此为Gremlin server v3.0.1)一起发布的Titan v1.0.0,您需要在conf/gremlin-server/gremlin-server.yaml文件中手动配置HttpChannelizer
  channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer

参见:TinkerPop v3.0.1文档:通过REST连接

这个替换了默认的WebSocketChannelizer,允许你通过HTTP向Gremlin Server发送查询。当你运行./bin/titan.sh start时,实际上是启动了Gremlin Server以及所有与Titan相关的内容(在默认设置中包括Titan实例、Cassandra和Elasticsearch)。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接