部署场景
JanusGraph提供了很多存储和索引后端选择,这使得它的部署方式具有很大的灵活性。本章介绍一些可能的部署场景。
在讨论不同的部署场景之前,我们先了解下JanusGraph本身和后端索引以及其后端存储的不同角色。首先,应用程序只与JanusGraph交互,主要是通过发送Gremlin遍历请求。然后JanusGraph与将接收到的遍历在后端的存储和索引中执行。当JanusGraph以JanusGraph Server的形式使用时,没有主节点和从节点之分且每个节点都是独立的。因此,应用程序可以通过负载均衡连接到任何JanusGraph Server实例。这使得JanusGraph Server有很好的扩展性。
入门部署场景
这个场景是大多数用户在刚开始使用JanusGraph时可能会选择的场景。它能够利用最少的服务器数量来提供扩展性和容错性。这种部署场景下,JanusGraph Server与后端的存储同在一个机器中运行,同时也可以根据需要将索引后端也运行在同一个机器中。
这种部署场景可以通过简单地添加更多的服务器来达到扩展的效果。
高级部署场景
高级部署场景是对上面介绍的入门部署场景的一种优化。这种部署场景下将存储和索引后端与JanusGraph Server分开部署。将存储和索引后端单独的部署于其它的机器中。这种部署的好处是可以根据需要单独对JanusGraph Server和后端存储或索引单独进行扩展和管理。这样更加灵活,但是也必须维护更多的服务器。
最小化部署场景
这种最小化的部署场景特别适合测试目的且不需要扩展性的需求。将Janusgraph Server以及后端都部署在同一台机器上,甚至可以将应用也运行在这台机器上。
这里可以使用内存Berkeley DB作为存储,如果需要后端索引,可以选择Lucene作为后端索引。
嵌入式场景
除了让JanusGraph以单独server的形式部署运行之外,JanusGraph也可以直接以依赖库的形式嵌入到应用中运行,与应用运行在同一个JVM中。这种场景虽然减少了JanusGraph的管理开销,但是JanusGraph不能独立进行扩展。