转自:https://www.cnblogs.com/jiyuqi/p/320267ff0b5052fad4613945e58ea1f1.html
JanusGraph使用Gremlin Server engine作为服务器组件来处理和应答客户端查询,当Gremlin Server集成到JanusGraph,称为JanusGraph Server。
JanusGraph Server必须被手工启动,JanusGraph Server提供了远程执行Gremlin脚本的途径。该节描述了如何配置websocket连接以及如何配置JanusGraph Server接受REST 请求。
7.1 Getting Started
7.1.1 Using the Pre-Packaged Distribution
JanusGraph自带了一个可以开箱使用的JanusServer,里面集成了简化的cassandra和ES,不能作为生产环境,但可以用来学习使用JanusServer。该Janus Server是基于Websocket的,使用步骤如下:
- 下载janusgraph-$version.zip文件
- 解压
- 运行bin/janusserver.sh start,该步骤将会启动Gremlin Server及Cassandra/ES到一个单独的进程。
启动之后即支持gremlin客户端通过websocket连接server,最常用的即为gremlin.sh shell。
$ bin/janusgraph.sh start ForkingCassandra... Running`nodetool statusthrift`.. OK (returned exit status 0 and printed string "running"). ForkingElasticsearch... Connecting to Elasticsearch(127.0.0.1:9300)... OK (connected to 127.0.0.1:9300). ForkingGremlin-Server... Connecting to Gremlin-Server(127.0.0.1:8182)... OK (connected to 127.0.0.1:8182). Run gremlin.sh to connect.
7.1.1.1 Connecting to Gremlin Server
当运行了janusserver之后,Gremlin Server已经做好准备接受socket连接,最简单的方式是使用gremlin console:、
使用bin/gremlin.sh 启动Gremlin Console,使用:remote命令连接远程服务器;使用:> 提交 gremlin语句。
$ bin/gremlin.sh \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.hadoop plugin activated: tinkerpop.utilities plugin activated: janusgraph.imports plugin activated: tinkerpop.tinkergraph gremlin>:remote connect tinkerpop.server conf/remote.yaml ==>Connected- localhost/127.0.0.1:8182 gremlin>:> graph.addVertex("name","stephen") ==>v[256] gremlin>:>g.V().values('name') ==>stephen
注意conf/remote.yaml是配置文件,指明了要连接的地址。
7.2 JanusGraph Server as WebSocket Endpoint
配置JanusGraph作为websocket服务器。
- 首先测试本地配置是否真确,可以通过gremlin console测试或者通过程序测试。本地配置为./conf目录下的配置,这里选取了janusgraph-cassandra-es.properties 这一配置文件,需要注意的是,该配置文件中需要包含有:gremlin.graph=org.janusgraph.core.JanusGraphFactory
- 一旦测试成功,将文件拷贝到./conf/gremlin-server目录下:cp conf/janusgraph-cassandra-es.properties conf/gremlin-server/socket-janusgraph-cassandra-es.properties
- 将配置文件 ./conf/gremlin-server/gremlin-server.yaml 拷贝到新文件并命名为:socket-gremlin-server.yaml:cp conf/gremlin-server/gremlin-server.yaml conf/gremlin-server/socket-gremlin-server.yaml
- 修改socket-gremlin-server.yaml文件
- 如果不想通过localhost连接,则修改 host: 10.10.10.100
- 将graph节指向最新的配置文件
graphs:{ graph: conf/gremlin-server/socket-janusgraph-hbase-server.properties}
- 启动janusgraph server,指定配置文件
bin/gremlin-server.sh ./conf/gremlin-server/socket-gremlin-server.yaml
注意:不要使用bin/janusgraph.sh,该shell将会启动一个预先配置好的GremlinServer。
7.3 JanusGraph Server as REST-style Endpoint
略
7.4 Advanced JanusGraph Server Configuration
7.4.1 WebSocket versus REST
JanusGraph server只能取REST或Websocket的一种,但可以配置两个服务分别接收不同类型的请求。
7.4.2 Using TinkerPop Germlin Server with JanusGraph
JanusGraph sever本身集成了TinkerPop server,因此可以单独部署ThinkerPop Server并与JanusGraph集成。具体不表,详见官方文档。