瑜伽graphql服务器+棱镜服务器:多租户

Posted

技术标签:

【中文标题】瑜伽graphql服务器+棱镜服务器:多租户【英文标题】:yoga graphql server + prisma server : multitenancy 【发布时间】:2019-02-08 14:35:38 【问题描述】:

我正在使用 Prisma Server 和 Yoga GraphQL 为多租户数据库设置后端环境

为了管理多租户,我们选择使用 Prisma Server 的“env”(dev/stage/prod)来处理它。 没关系,Prisma 服务器不难管理,现在我们为每个租户都有一个端点,例如:http://localhost:4466/service/tenant/

之后,很容易使用 graphql get-schema 从 Prisma 中提取 *.graphql。

但是现在,困难在于:如何为我需要的服务和租户设置一个 GraphQL 服务器?

基于不同的例子 / tuto / docs / ...我找不到在我的 index.js 中设置 GraphQL Server 的方法:监听多个 URI 并且每个 URI 都连接一个 prisma 服务器。

例如,我需要:

GraphQL Server 端点http://localhost:4000/service-1/client-1/ 只能是请求http://localhost:4466/service-1/client-1/

对于client-2(第二个租户)http://localhost:4000/service-1/client-2/只能请求http://localhost:4466/service-1/client-2/

GraphQL Server 似乎每个端口只能启动一次(这里是 4000)

[编辑] 这里有一个代码来说明https://github.com/mouchimotte/prisma-yoga-multitenancy

【问题讨论】:

如果您需要更多详细信息,请不要犹豫 ;) 我刚刚找到了这个库 (npmjs.com/package/prisma-multi-tenant)。希望对你有帮助 非常感谢@rma!我认为这个包可以是 ma 解决方案,但我已经停止使用 Prisma 进行开发。我改用 Laravel,第一个查询操作的时间肯定更长,但更容易和结构化!最终我的产品更加充分 【参考方案1】:

正如@rma 在评论中所说,您可以使用prisma-multi-tenant npm 包来构建多租户应用程序。

您可以阅读这篇解释如何使其工作的文章:https://medium.zenika.com/building-a-multi-tenant-application-with-prisma-11bf890304d6

【讨论】:

您好,错误名称!就像我对@rma 的回应一样,我已经停止使用 Prisma 进行开发,然后将其传递给 Laravel,而不是使用“laravel 租赁”(hyn/多租户)和民俗/graphql 用于 graphql 部分(基于 webonyx 包) 【参考方案2】:

如果您希望使用共享数据库策略,即一个具有租户 ID 列的数据库,您可以使用此包: https://www.npmjs.com/package/node-express-multitenant

【讨论】:

以上是关于瑜伽graphql服务器+棱镜服务器:多租户的主要内容,如果未能解决你的问题,请参考以下文章

citus 多租户应用开发(官方文档)

多租户和多应用怎么对应

多租户改造

Serenity框架官方文档翻译3.2(多租户)

多租户:Spring 与 Hibernate

为成熟的企业应用程序实施多租户