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集成。具體不表,詳見官方文檔。