JanusGraph 1.1 介绍与选型指南
JanusGraph 1.1 介绍与选型指南:官方资料溯源的存储与索引后端分离架构、TinkerPop/Gremlin 生态、1.1.0 兼容矩阵、快速上手与适用限制,以及与 Neo4j、NebulaGraph、HugeGraph、ArangoDB 的量化选型对比。
JanusGraph 1.1 介绍与选型指南
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(janusgraph.org 官方站点、docs.janusgraph.org 官方文档、GitHub 官方仓库 JanusGraph/janusgraph 发行页),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 JanusGraph 1.1 系列,最新稳定版 1.1.0(2024-11-07 发布)。这是 2026-10-19 实查的 GitHub Releases 页面最顶部(最新)稳定发行版,1.x 线此前还有 1.0.0(2023-10-21)与 1.0.1(2024-11-06)。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新稳定版 | 1.1.0(2024-11-07) | github.com/JanusGraph/janusgraph/releases |
| 1.x 线时间线 | 1.0.0(2023-10-21)→ 1.0.1(2024-11-06)→ 1.1.0(2024-11-07) | github.com/JanusGraph/janusgraph/releases |
| 上一稳定线 | 0.6.2(2022-05-31) | github.com/JanusGraph/janusgraph/releases |
| 代码仓库 | JanusGraph/janusgraph | github.com/JanusGraph/janusgraph |
| 开源许可 | Apache License 2.0(项目由 Linux Foundation 托管商标) | 官方仓库/文档声明 |
| 1.1.0 实测兼容矩阵 | Cassandra 3.11.10 / 4.0.6,HBase 2.6.0,BerkeleyJE 7.5.11,ScyllaDB 6.2.0,Elasticsearch 6.0.1 / 6.6.0 / 7.17.8 / 8.15.3,Lucene 8.11.1,Solr 8.11.1,TinkerPop 3.7.3,Java 8 / 11 | 1.1.0 发行说明 |
| 预打包发行版内置 | Cassandra 4.0.6、Elasticsearch 7.17.8 | 1.1.0 发行说明 |
1.3 官方来源清单
二、软件概述
本文介绍的是 JanusGraph 1.1(最新稳定版 1.1.0,2024-11-07 发布)。
JanusGraph 是一个高度可扩展的分布式图数据库,官方定位为「针对存储与查询包含数千亿顶点和边、分布于多机集群上的大图而优化」,支持事务、支持数千并发用户的实时访问,并以 Apache 2.0 许可完全开源(官方站点)。项目源自 Thinkaurelius 的 Titan 图数据库分支,现由 Linux Foundation 托管,是 TinkerPop 生态中最具代表性的开源图数据库实现。
其最核心的架构特征是「三段解耦」:存储后端、索引后端、查询引擎彼此独立。JanusGraph 自身不管理磁盘数据,而是把图数据落在 Cassandra/HBase 等分布式存储上,把索引检索交给 Elasticsearch/Solr/Lucene,自己专注于图语义(属性图模型、遍历、事务)的翻译与执行——这使它可以用「已有大数据平台 + 一层图语义」的方式低成本接入,而不必像多数图数据库那样自带整套装载与存储体系。
按 2026-10-19 的社区口径,JanusGraph 仓库(JanusGraph/janusgraph)的星标规模约 5.8k(第三方聚合数据,2026-10-19 查询),属于「社区规模中等、但工程深度与生产部署案例扎实」的类型。
三、核心架构
3.1 三段解耦
| 层 | 组件 | 说明 |
|---|---|---|
| 查询层 | Gremlin Server / 嵌入式 API | 对外提供 Gremlin 遍历语言访问(WebSocket/HTTP),默认端口 8182 |
| 语义层 | janusgraph-core | 属性图模型、事务管理、遍历翻译、序列化 |
| 存储层 | Cassandra / HBase / ScyllaDB / BerkeleyJE 等 | 图数据(顶点、边、属性)的实际持久化 |
| 索引层 | Elasticsearch / Solr / Lucene | 全文检索与范围查询等混合索引加速 |
3.2 存储后端与部署形态
- CQL 后端(Cassandra):生产最常用组合之一,1.1.0 实测兼容 Cassandra 3.11.10 与 4.0.6(发行说明);
- HBase 后端:对接 Hadoop 生态存量集群,1.1.0 实测兼容 HBase 2.6.0;
- BerkeleyJE:嵌入式本地存储,适合单机与开发场景;
- ScyllaDB 6.2.0 亦在 1.1.0 实测兼容列表中。
3.3 索引体系
官方文档将索引分为全局图索引(Global Graph Indices,如复合索引与混合索引)与面向遍历的索引:复合索引支持等值查询,混合索引(配合 Elasticsearch/Solr/Lucene)支持全文与范围查询。1.1.0 的发行说明还包含「将顶点属性内联进复合索引以加速属性读取」等性能优化。
3.4 查询接口
查询语言为 Apache TinkerPop 的 Gremlin(1.1.0 搭配 TinkerPop 3.7.3),支持嵌入式 Java API、Gremlin Server 远程连接与控制台三种方式;远程连接同样可执行文本谓词(1.1.0 发行说明)。
四、功能特性
4.1 分布式与水平扩展
数据随存储后端天然分片,集群容量随 Cassandra/HBase 扩展;官方文档强调其面向「单机无法容纳的大图」的设计目标。
4.2 事务与并发
支持多并发事务与复杂遍历(官方站点);1.1.0 新增事务级「惰性加载关系」配置,并提供批量查询优化(含支持 drop() 步骤的批量优化、JanusGraphNoOpBarrierVertexOnlyStep 等,见 1.1.0 发行说明)。
4.3 Schema 管理
支持显式 Schema 与 1.1.0 新增的 JSON 格式 Schema 定义与初始化(发行说明),便于把建模流程纳入版本管理。
4.4 版本节奏与兼容矩阵
1.x 线约一年一次 minor:1.0.0(2023-10)→ 1.0.1(2024-11)→ 1.1.0(2024-11)。每次发行说明都给出精确到小版本号的「Tested Compatibility」矩阵(存储、索引、TinkerPop、Java),这是选型时核对存量组件版本的第一手依据——例如计划使用 Elasticsearch 8.x 的部署必须确认落在 8.15.3 的兼容点附近。
五、快速上手
以下内容转述自官方文档(https://docs.janusgraph.org/getting-started/basic-usage/ ),本文不做本地实测。
5.1 获取与启动
从官方发行页下载 1.1.0 预打包发行版(内置 Cassandra 4.0.6 与 Elasticsearch 7.17.8),解压后以 bin/gremlin.sh 进入 Gremlin 控制台。
5.2 打开图并加载示例数据
官方 Basic Usage 的最小路径(以内置示例配置为例):
graph = JanusGraphFactory.open('conf/janusgraph-cql-es.properties')
GraphOfTheGodsFactory.load(graph)
g = graph.traversal()
GraphOfTheGodsFactory.load() 会把官方示例图「Graph of the Gods」(神话人物/地点/怪物构成的属性图)写入后端,随后即可执行遍历,例如查询 Saturn 的子孙、Hercules 的十二功绩等官方文档给出的经典遍历示例。
5.3 索引与遍历验证
官方文档在示例图上演示了全局索引的价值:有索引后端时按属性(如 name='saturn')定位顶点走索引查询,无索引时退化为全图扫描。完整步骤与更多遍历示例见官方 Basic Usage 页面;要在生产环境落地,可参考本站《Ubuntu 22.04 安装 JanusGraph 1.1 指南》与《JanusGraph 集群模式部署指南(Gremlin Server + Cassandra 后端集群)》。
六、适用场景与限制
6.1 适用场景
- 已有 Cassandra/HBase 等存储集群,希望在不引入新存储体系的前提下获得图查询能力;
- 知识图谱、风控关系网络、身份权限图谱等需要海量顶点边与多跳遍历的场景;
- 需要 Gremlin 生态(TinkerPop、Gremlin Server、可视化工具)兼容性的项目;
- 单机开发可用 BerkeleyJE 快速起步,生产再切换 CQL/HBase 后端,配置迁移成本低。
6.2 限制与注意事项
- 发版节奏偏慢:1.1.0 发布于 2024-11-07,2026-10-19 实查时 1.x 线尚无更新的 minor 版本,新特性需关注社区里程碑;
- 兼容矩阵必须严格核对:存储/索引后端版本超出「Tested Compatibility」列表即属未验证组合;
- 组件栈较重:完整生产形态是「JanusGraph + Cassandra + Elasticsearch」三件套,运维面显著大于单体图数据库;
- Gremlin 学习曲线:团队若无 TinkerPop 经验需预留学习成本;
- 社区规模中等(约 5.8k stars,第三方聚合 2026-10-19 查询),商业支持依赖生态厂商而非单一发行商。
七、同类选型对比
7.1 候选概览
| 数据库 | 定位 | 许可证 |
|---|---|---|
| JanusGraph 1.1 | 存储解耦型分布式图数据库(Gremlin 生态) | Apache-2.0 |
| Neo4j | 图数据库事实标准,Cypher 生态,自带存储 | 社区版 GPLv3 / 企业版商业许可 |
| NebulaGraph | 大规模分布式图数据库(自有 nGQL) | 开源版 Apache-2.0(另有企业版) |
| Apache HugeGraph | Apache 顶级项目图数据库(Gremlin/Cypher 兼容) | Apache-2.0 |
| ArangoDB | 多模型(文档/图/KV)数据库 | 3.12 起 BSL 1.1 / 社区许可(非生产商用受限) |
7.2 量化对比(2026-10-19 实查)
| 维度 | JanusGraph 1.1 | Neo4j | NebulaGraph | HugeGraph | ArangoDB |
|---|---|---|---|---|---|
| 许可证 | Apache-2.0 | 社区版 GPLv3,企业版商业(neo4j.com) | 开源版 Apache-2.0,企业版 v5.3 GA | Apache-2.0 | BSL 1.1 / ArangoDB 社区许可(3.12 起,非商用与 100GB 限制) |
| 最新稳定版本 | 1.1.0(2024-11-07) | 2026.09.0(2026-09-21,另有 5.26 LTS 线 5.26.32,2026-10-09) | 开源版 v3.8.0(企业版 v5.3 GA 2026-06) | 1.7.0(2025-11-28) | 3.12.x(3.12.7.2,2026-01-23) |
| 版本节奏 | 约一年一个 minor,补丁少 | 年式版本 + LTS 双线,补丁频繁 | 开源线与企业线节奏分化 | 稳定推进,2026 年 1 月毕业为 Apache 顶级项目 | 3.12 长线维护 |
| GitHub stars 社区活跃度 | 约 5.8k(第三方聚合) | 约 1.56 万(第三方聚合) | 约 1.19 万(第三方聚合) | 约 3.2k(第三方聚合) | 约 1.42 万(第三方聚合) |
| 查询语言 | Gremlin | Cypher | nGQL | Gremlin/Cypher 兼容 | AQL |
| 存储架构 | 解耦(Cassandra/HBase 等) | 自带 | 自带分布式 | 自带(可插拔后端) | 自带 |
(版本与日期取自各自官方发行渠道 2026-10-19 实查:JanusGraph Releases 页、neo4j.com 部署中心与发行说明、nebula-graph.io/download.nebula-graph.io、hugegraph.apache.org 下载页、ArangoDB 官方 CHANGELOG/文档;stars 为第三方聚合口径,查询日期 2026-10-19。)
7.3 选型建议
- 已重仓 Hadoop/HBase 或 Cassandra 体系的团队,JanusGraph 是以最小新增运维面获得图能力的路径,且 Apache-2.0 无商用限制;
- 中小规模、想要开箱即用与最强工具链的团队选 Neo4j:年式版本迭代活跃、Cypher 生态与可视化成熟,但注意社区版 GPLv3 与企业版的功能边界;
- 十亿级边、重 OLTP 多跳查询的场景可评估 NebulaGraph(注意开源线 v3.8.0 与企业线 v5.3 的版本分化);
- 想要 Apache 顶级项目治理 + Gremlin/Cypher 双语言的候选是 HugeGraph;
- ArangoDB 需谨慎:3.12 起许可从 Apache 2.0 转为 BSL/社区许可(生产商用受限、100GB 数据上限),多模型便利与许可风险需要一并权衡;
- 若需要与 JanusGraph 在同一存储栈上做落地验证,可先按本站《Ubuntu 22.04 安装 JanusGraph 1.1 指南》完成单机打通再做对比压测。
八、参考链接
- 官方站点:https://janusgraph.org/
- 官方文档:https://docs.janusgraph.org/
- Basic Usage(快速上手):https://docs.janusgraph.org/getting-started/basic-usage/
- 源码仓库:https://github.com/JanusGraph/janusgraph
- 1.1.0 发行说明:https://github.com/JanusGraph/janusgraph/releases/tag/v1.1.0
- Neo4j 部署中心:https://neo4j.com/deployment-center/
- NebulaGraph 开源版下载:https://www.download.nebula-graph.io/
- Apache HugeGraph 下载页:https://hugegraph.apache.org/docs/download/download/
- ArangoDB 许可说明:https://docs.arango.ai/arangodb/3.12/features/