计算机系统应用教程网站

网站首页 > 技术文章 正文

(六)JanusGraph基本使用 janus graph

btikc 2024-10-26 08:40:38 技术文章 5 ℃ 0 评论

作为一个数据库系统,它是要用来为应用程序存储数据用的,那么应用程序应该如何使用JanusGraph来为自己存储数据呢?


一般来说,应用程序可以通过两种不同的方式来使用JanusGraph:

第一种方式:可以把JanusGraph嵌入到应用程序中去,JanusGraph和应用程序处在同一个JVM中。应用程序中的客户代码(相对JanusGraph来说是客户)直接调用Gremlin去查询JanusGraph中存储的图,这种情况下外部存储系统可以是本地的,也可以处在远程

第二种方式:应用程序和Janus Graph处在两个不同JVM中,应用通过给JanusGraph提交Gremlin查询给GremlinServer,来使用JanusGraph,因为JanusGraph原生是支持Gremlin Server的。

Gremlin Server是Apache Tinkerpop中的一个组件

JanusGraph集群包含一个、或者多个JanusGraph实例。每次启动一个JanusGraph实例的时候,都必须指定JanusGraph的配置。在配置中,可以指定JanusGraph要用的组件,可以控制JanusGraph运行的各个方面,还可以指定一些JanusGraph集群的调优选项:

  • 最小的JanusGraph配置只需要指定一下JanusGraph的后端存储系统,也就是它的持久化引擎。
  • 如果要JanusGraph支持高级的图查询,就需要为JanusGraph指定一个索引后端。
  • 若果要提升JanusGraph的查询性能,就必须为JanusGraph指定缓存,指定性能调优的选项。

以上提到的后端存储系统、索引后端、缓存、调优选项等都可以在JanusGraph的配置文件中进行指定。默认情况下它的配置文件存放在JanusGraph_home/conf目录下:

storage.backend=cassandra
storage.hostname=localhost

index.search.backend=elasticsearch
index.search.hostname=
index.search.elasticsearch.client-only=true
/**
* 创建一个JanusGraph实例
* @return JanusGraph的一个实例
*/
private static JanusGraph create() {
    try {
        return JanusGraphFactory.build()
                .set("storage.backend", "hbase")
                .set("storage.hostname", "")
                .set("storage.port", "")
                .set("storage.hbase.table", "")
                .set("cache.db-cache", "true")
                .set("cache.db-cache-clean-wait", "20")
                .set("cache.db-cache-time", "180000")
                .set("cache.db-cache-size", "0.5")
                .set("index.relationalNetwork.backend", "elasticsearch")
                .set("index.relationalNetwork.hostname", "")
                .set("index.relationalNetwork.port", 9000)
                .open();
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}


当我们使用数据库时,需要充分考虑CAP理论(C =一致性,A =可用性,P =可分区性)。 JanusGraph支持了3种后端存储:Apache Cassandra,Apache HBase和Oracle Berkeley DB Java Edition。 注意,BerkeleyDB JE是一个非分布式数据库,通常仅用来测试和学习JanusGraph。

HBase以可用性为代价优先考虑强一致性。 Cassandra以一致性为代价优先考虑可用性。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表