JanusGraph实战-多种方式使用JanusGraph Server

概述

本文讲述通过多种方式来访问和使用JanusGraph。并通过实际例子进行讲解。

JanusGraph Server和JanusGraph说明

JanusGraph使用Gremlin Server引擎作为服务器组件来处理和响应客户端的请求。当把Gremlin Server打包在JanusGraph中时,Gremlin Server被称为JanusGraph Server。

必须手动启动JanusGraph Server才能使用它。JanusGraph Server提供了一种远程执行Gremlin脚本的方法,该脚本针对托管在其中的一个或多个JanusGraph实例。本节将介绍如何使用WebSocket配置,以及如何配置JanusGraph Server以处理HTTP端点交互。

这里要注意,一个JanusGraph Server可以对接一个或多个不同类型的JanusGraph实例?那么如何操作呢?

其架构图如下所示:

JanusGraph实战-多种方式使用JanusGraph Server_第1张图片

JanusGraph Server作为WebSocket节点

说明:本例子的后台存储系统和索引系统都是安装在同一台机器上。这里后台外部存储系统使用的是hbase,而并没有配置外部索引系统。

  • 先确定后台存储系统hbase能够正常访问

    查看配置文件:conf/janusgraph-hbase.properties中的以下配置项是否正确:
gremlin.graph=org.janusgraph.core.JanusGraphFactory

storage.backend=hbase

storage.hostname=127.0.0.1
  • 复制配置文件到./conf/gremlin-server目录下:
cp conf/janusgraph-hbase.properties conf/gremlin-server/socket-janusgraph-hbase-server.properties
  • 准备gremlin-server.yaml配置文件
cp conf/gremlin-server/gremlin-server.yaml conf/gremlin-server/socket-gremlin-server.yaml
  • 编辑 socket-gremlin-server.yaml 文件

配置需要访问的JanusGraph实例:

graphs: {
    graph: conf/gremlin-server/socket-janusgraph-hbase-server.properties
}
  • 启动 JanusGraph Server
bin/gremlin-server.sh ./conf/gremlin-server/socket-gremlin-server.yaml
  • 访问和使用JanusGraph Server

    这里讲述如何通过Console终端来访问JanusGraph Server,并进行一些操作。

再开启一个终端,并在终端中输入以下命令:

bin/gremlin.sh
gremlin> 

注意:这里只是开启了一个Gremlin的终端,并没有连接JanusGraph Server。

这样就开启了一个gremlin输入终端,可以在该终端中输入命令了。

(1) 连接JanusGraph Server(也就是Gremlin Server)

gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182

其中配置文件remote.yaml是JanusGraph Server的地址和端口,这里是localhost。

(2) 添加一个顶点,并获取顶点列表

gremlin> :> graph.addVertex("name", "stephen")
==>v[256]
gremlin> :> g.V().values('name')
==>stephen
...

JanusGraph Server作为HTTP服务节点

  • 准备JanusGraph实例的配置文件
cp conf/janusgraph-hbase.properties conf/gremlin-server/http-janusgraph-hbase-server.properties
  • 准备Gremlin Server配置文件
cp conf/gremlin-server/gremlin-server.yaml conf/gremlin-server/http-gremlin-server.yaml

并修改以下内容:

channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer
graphs: {
  graph: conf/gremlin-server/http-janusgraph-hbase-server.properties
}
  • 根据刚才修改的配置文件启动JanusGraph Server
bin/gremlin-server.sh ./conf/gremlin-server/http-gremlin-server.yaml
  • 通过curl命令进行测试
curl -XPOST -Hcontent-type:application/json -d '{"gremlin":"g.V().count()"}' http://[IP for JanusGraph server host]:8182

若没有任何错误,可以看到一些输出类似于如下的内容:

{"requestId":"88474df8-e288-456f-9491-cea38410caf6","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"g:Int64","@value":15}]},"meta":{"@type":"g:Map","@value":[]}}}

配置JanusGraph Server作为HTTP和WebSocket节点

这一步主要是把gremlin-server的配置文件的这一行改成如下内容:

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

为HTTP和WebSocket配置认证机制

有时访问http和WebSocket服务时,需要进行认证。有关具体的认证机制的部署,可以参看:https://docs.janusgraph.org/latest/server.html
的详细说明。

总结

本文讲述了如何把JanusGraph Server配置成http服务或WebSocket服务。并通过例子说明了其用法。

参考

  • https://docs.janusgraph.org/latest/server.html

你可能感兴趣的:(图计算)