第八章:系统部署型态
Chapter 8. Deployment Scenarios
JanusGraph提供多种后端存储和后端索引,使其能够更灵活的部署。本章介绍了几种可能的部署场景,以帮助解决这种灵活性带来的复杂性。
在讨论部署场景之前,理解JanusGraph本身的角色定位和后端存储的角色定位是非常重要的。首先,应用程序与JanusGraph
进行交互大多数情况下都是进行Gremlin
遍历,然后,JanusGraph
把遍历请求发给配置好的后端(存储后端、索引后端)执行遍历处理。当JanusGraph
以服务的形式被使用的时候,将不会有主服务(master JanusGraph Server)。应用程序可以连接任何一个JanusGraph
服务实例。这样就可以使用负载均衡把请求分配到不同的实例上。JanusGraph
服务实例之间本身是没有之间联系的,当遍历处理增大的时候这更容易扩容。
注意
本章提出的场景仅仅是JanusGraph
部署的一个示例。实际部署的时候需要考虑具体用例和生产需要。
8.1 快速上手方案
8.1. Getting Started Scenario
这种场景是大多数用户在刚开始使用JanusGraph
时可能要选择的场景。它提供了可伸缩性和容错性所需要的最少服务数量。每个JanusGraph
服务运行在单独的存储后端和可选的索引后端。
8.2 建议部署方案
8.2. Advanced Scenario
建议部署方案也是由8.1节 快速上手部署方案进化来的。JanusGraph
服务实例集群不和存储后端集群和索引后端集群部署在一起,他们被分配到不同的服务器上集群上。建议不同的组件集群(JanusGraph服务、索引后端、存储后端)部署到不同的服务器集群上,这样能够方便扩容和管理,相互之间也互不依赖。这为维护更多的服务器提供了更高的灵活性。
该方案提供了不同组件的独立可伸缩性,当然,使用可伸缩的后端也是非常有意义的。
8.3 极简方案
8.3. Minimalist Scenario
JanusGraph
服务也可以和后端存储/索引部署在一台机器上。这对于测试或者单应用来说,部署在一台服务器上是非常具有吸引力的。
与上面方案相反,这种部署方案不可伸缩。内存后端可用于测试,Berkeley DB
用于生产,Lucene
作为可选索引后端。
8.4嵌入式JanusGraph
8.4. Embedded JanusGraph
基于JVM的应用程序可以直接嵌入一个JanusGraph
包,而不用连接到JanusGraph
服务。虽然这样可以减少管理开销,这导致不能对JanusGraph
进行单独扩容。JanusGraph
嵌入式部署方案是其他部署方案的变种,JanusGraph只是从服务器直接移动到应用程序中,因为它现在只是用作库,而不是独立的服务。
原文:https://docs.janusgraph.org/latest/deployment-scenarios.html