图数据库JanusGraph实战[2]: JanusGraph架构
在上一篇文章《图数据库JanusGraph实战[1]: JanusGraph简介》中,我们对JanusGraph做了简单介绍,本文主要介绍JanusGraph的架构。
JanusGraph是一个图数据库引擎。JanusGraph本身专注在图数据的序列化、丰富图数据建模和高效查询的执行。此外,JanusGraph使用Hadoop/Spark等来做图分析和批量图数据处理。
JanusGraph为数据的持久化、数据索引和客户端访问实现了健壮的,模块化的接口。JanusGraph的模块化架构使得它可以广泛地与各类存储、索引和客户端技术交互操作。它也简化了JanusGraph扩展支持新系统的过程。
JanusGraph支持多个存储和索引适配器,目前它支持如下适配器,但JanusGraph模块化的架构使得它也容易支持其他第三方适配器。
数据存储
Apache Cassandra
Apache HBase
Oracle BerkeleyDB Java Edition
索引
Elasticsearch
Apache Solr
Apache Lucene
一般来说,应用程序可以通过如下两种方式与JanusGraph交互:
嵌入式JanusGraph:它与执行Gremlin查询语言的应用程序运行在同一个JVM中。查询执行,JanusGraph图缓存和事务处理都发生在同一个JVM中,但后端的数据存储可以是本地也可以在远程。
JanusGraph服务器:通过提交Gremlin语言到JanusGraph服务器来交互。
JanusGraph的架构图如下所示:
JanusGraph架构图
JanusGraph主要包含四个部分:
后端存储:负责JanusGraph图数据的存储
外部索引:负责JanusGraph的外部索引,是可选的
OLTP:负责图数据库相关接口及API操作(含Gremlin)
OLAP:负责图计算相关接口及与其他计算框架的集成
从上面的图可以看出,JanusGraph的架构非常灵活,对于各种第三方组件支持自由组合,可根据自己当前所在的业务需要和技术平台来选择适合自己的技术架构。
相关文章