JanusGraph·server端配置启动和远程remote连接·多实例问题

  • 4.2.2. JanusGraph Server

    JanusGraph本身就是一组没有执行线程的jar文件。连接和使用JanusGraph数据库有两种基本模式:

    1.嵌入式

    • 补充自己的实验记录

  • 2.当JanusGraph被启动时,JanusGraph打包了一个长期运行的服务器进程(JanusGraph Server),这个服务器进程允许远程客户端进行JanusGraph调用.

  • JanusGraph packages a long running server process that, when started, allows a remote client or logic running in a separate program (??) to make JanusGraph calls. This long running server process is called JanusGraph Server.
  • For the JanusGraph Server, JanusGraph 使用  Apache TinkerPop 的Gremlin Server 来服务client的请求。JanusGraph提供了一个开箱即用的配置,可以快速启动JanusGraph Server,但可以更改配置以提供广泛的服务器功能。

    配置JanusGraph Server是通过位于JanusGraph发行版的./conf/gremlin-server目录中的JanusGraph Server yaml配置文件完成的。要使用graph实例(JanusGraph)配置JanusGraph Server ,JanusGraph Server配置文件需要以下设置:

  • ...
    graphs: {
      graph: conf/janusgraph-berkeleyje.properties
    }
    plugins:
      - janusgraph.imports ?? 这里不知道怎么处理
    ...
  • 下图跟上面不太一致
  • JanusGraph·server端配置启动和远程remote连接·多实例问题_第1张图片

  • conf 和 conf/gremlin-server下都有 .properties文件 ,conf/gremlin-server下的.properties文件多一个 -server.properties后缀,粗略看了下两者的内容,好像是差不多的。

 

  • graph条目绑定绑graph到JanusGraph配置conf/janusgraph-berkeleyje.properties.

  • The plugins entry enables the JanusGraph Gremlin Plugin, which enables auto-imports of JanusGraph classes(自动导入的 JanusGraph classes) so that 它们可以在远程提交的脚本中被引用.

  •  

  • 了解更多有关配置和使用JanusGraph服务器第7章,JanusGraph服务器

  • 4.2.2.1. Server Distribution

    • bin/janusgraph.sh 是一个快速启动Gremlin Server和JanusGraph的脚本。

    • Invoke bin/janusgraph.sh start to start Gremlin Server with Cassandra and Elasticsearch.

    •  

      JanusGraph·server端配置启动和远程remote连接·多实例问题_第2张图片
  •  

  • 解压

  • 刚解压的 直接./gremlin-server无法成功启动,因为你conf/gremlin-server/janusgraph-cql-es-server.properties
  • 需要修改.yaml中的 .properties的路径

  • Gremlin

  • 在gremlin-server没有启动(gremlin-console自然也无法通过:remote连接)的情况下,gremlin-console也能执行下面的语句
  • 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]
  •  

    •  
  • java远程连接代码
    •   graph = EmptyGraph.instance();
              g = graph.traversal().withRemote(conf);
      需要配置一个 remote-objects.yaml:
      • hosts: [xx,xxx,xx]
        port: 8182
        serializer: {
            className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0,
            config: {
                ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry]
            }
        }
      • 这个配置文件可以配置多个host,用逗号隔开
      • 连接一台host上的多实例,应该使用http类型的janus graph server,

        然后直接通过 url + port + post (body),每个实例配置不同端口

        这种方式也不需要通过remote连接。

      •  

      • 连接JanusGraph RemoteServer的Java程序例子. https://github.com/JanusGraph/janusgraph/tree/master/janusgraph-examples/example-remotegraph

 

 

 

  • Use gremlin console to connect to gremlin-server

    • :remote connect tinkerpop.server ../conf/remote.yaml
    • 测试代码

graph = JanusGraphFactory.build().set("storage.backend", "inmemory").set("storage.hostname","10.158.69.75").open()

 g = graph.traversal()

 

 

  • 多实例架构图
    • JanusGraph·server端配置启动和远程remote连接·多实例问题_第3张图片

    •  

 

 

你可能感兴趣的:(图数据库)