JanusGraph database instance
- 图数据库实例
- 需要通过配置文件(properties)来进行初始化
graph = JanusGraphFactory.open('conf/janusgraph-berkeleyje-es.properties')
JanusGraph Server
- 服务器,用于接收客户端的请求,并去访问JanusGraph database instance然后返回结果给客户端。
- 需要通过一个yaml型配置文件来启动。
bin/gremlin-server.sh ./conf/gremlin-server/socket-gremlin-server.yaml
- 使用默认配置文件启动服务器命令
bin/janusgraph.sh start //其实是使用了默认的配置文件./conf/gremlin-server/gremlin-server.yaml
- 服务器负责初始化JanusGraph database instance 。所以在yaml配置文件中需要指定图实例初始化时需要的配置文件的位置,通过graphs条目来指定。
graphs: {
graph: conf/gremlin-server/socket-janusgraph-hbase-server.properties
}
- 有两种访问模式:WebSocket和REST。也是在yaml中通过channelizer来指定。
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
或
channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer
- REST模式下访问方式
The JanusGraph Server should now be running in REST mode and available for testing. curl can be used to verify the server is working:
curl -XPOST -Hcontent-type:application/json -d '{"gremlin":"g.V().count()"}' http://[IP for JanusGraph server host]:8182
注:可以启动多个Server,每个Server可以设置不同的模式,这样客户端就可以选择多种方法来访问了(websocket或rest)。即一个JanusGraph database instance被多个不同模式的server访问。(未来一个Server有可能同时支持多个访问协议)
Gremlin.sh
- 启动客户端
$ 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
- 可以直接构建图数据库实例,然后进行API调用。
gremlin> graph = JanusGraphFactory.open('conf/janusgraph-berkeleyje-es.properties')
==>standardjanusgraph[berkeleyje:../db/berkeley]
gremlin> GraphOfTheGodsFactory.load(graph)
==>null
gremlin> g = graph.traversal()
==>graphtraversalsource[standardjanusgraph[berkeleyje:../db/berkeley], standard]
- 也可以访问服务器,通过服务器(服务器需是WebSocket模式)来访问数据库实例。conf/remote.yaml指定访问服务器的信息。
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
编程访问
- 不通过Gremlin.sh来访问
- 1.直接在程序中实例化janusGraph database instance 然后调用API访问。
- 2.访问服务器,服务器在WebSocket模式下,程序中编写websocket客户端和服务器进行通信。在REST模式下,程序中通过发送http连接来访问。
Gremlin Server和JanusGraph Server关系
- Since JanusGraph Server is a TinkerPop Gremlin Server packaged with configuration files for JanusGraph, a version compatible TinkerPop Gremlin Server can be downloaded separately and used with JanusGraph. Get started by downloading the appropriate version of Gremlin Server, which needs to match a version supported by the JanusGraph version in use.
网友评论