首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SaaS应用程序的多租户GraphDB (Neo4J / ArangoDB)的设计与实现

SaaS应用程序的多租户GraphDB (Neo4J / ArangoDB)的设计与实现
EN

Stack Overflow用户
提问于 2021-02-18 10:16:53
回答 2查看 287关注 0票数 1

我正在用以下技术开发一个SaaS应用程序:

  • NestJS (节点)
  • DB (NEO4J,ArangoDB)
  • Nginx代理(微型服务方法)

SaaS应用程序将作为客户托管许多不同的公司。来自两家不同公司的数据必须在GraphDB中完全隔离。2不同的公司可能有不同的数据结构和模型。

以下是我的查询:

  • 如何在GraphDB (Neo4J / ArangoDB)上建立多租户?
  • 每个公司都需要一个完全独立的GraphDB实例吗?
  • 是否有可能在同一GraphDB上托管2家公司,但又能保持隔离?

有人能为这种类型的体系结构提出一个最佳的解决方案吗?

耽误您时间,实在对不起

诚挚的问候

EN

回答 2

Stack Overflow用户

发布于 2021-02-18 20:46:59

由于Neo4j 4.0通过多数据库支持多租户.

在系统数据库中,您可以创建任意数量的数据库,并且可以从客户端逐个会话地选择要与之对话的数据库,这样您就可以为租户使用每个数据库。

以下是JS:

https://neo4j.com/docs/api/javascript-driver/current/class/src/driver.js~Driver.html#instance-method-session

每个数据库实例可以处理数百或数千个数据库。

启用Neo4j Fabric后,您可以执行跨数据库的联邦查询。

下面是更多的例子

票数 2
EN

Stack Overflow用户

发布于 2021-02-18 10:55:36

使用ArangoDB,您只需要一个实例,并且可以简单地使用每个租户的数据库。

每个数据库都是孤立的,例如,AQL查询在单个数据库的上下文中运行,您只能访问该数据库的集合和命名图。

您可以为每个客户创建一个ArangoDB用户,并限制其对相应数据库的访问,以实现所需的隔离。

对于可伸缩性和弹性,还有OneShard特性(Enterprise / 托管服务)。它使您能够拥有一个集群,其中每个数据库被视为一个单独的碎片,也就是说,客户的所有集合都存储在一个DB(不包括副本)上,因此查询可以在该节点上本地执行。这对图遍历特别有利。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66257881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档