【问题标题】:Handle Multi-Tenant React application处理多租户 React 应用程序
【发布时间】:2020-06-08 22:16:12
【问题描述】:

基本上我有一个多租户反应应用程序。我目前有 15 个客户,部署到 Dev、Stage 和 Prod Env。无论开发、阶段和产品如何,我对不同的客户都有不同的要求。维护此架构的最佳实践是什么。目前,我在我的代码中为特定客户编写条件以进行特定更改。

我正在使用React 15.6.1, WebPack, Redux

下面是我的配置文件

appConfig = {
    localhost: {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer1': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer2': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer3': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer4': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer5': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
  };

【问题讨论】:

  • 也许您可以使用flagged 之类的东西在整个代码中实现功能标志,并配置哪些客户可以使用数据库中的哪些功能。现在您只有一个所有客户都可以使用的代码库,并且您可以在数据库中配置客户功能。当你搜索“react feature flag”时,你会发现很多解决方案,一些是商业的,一些是开源的。

标签: javascript reactjs redux architecture multi-tenant


【解决方案1】:

恕我直言,在代码中识别租户并根据租户参数呈现内容的概念并不是一个非常灵活和可扩展的选项。

考虑以下选项

  1. 带有扩展字段和动态 UI 呈现的单一代码库,这 帮助每个租户将自定义字段添加到基础实体并查看它们 在用户界面中。

  2. 为每个租户提供模块和许可:在此模型中,您可以构建 应用中的各个模块然后打包,每个租户 将拥有决定模块是否可供用户访问的许可证 给定租户。

这对你build new features, bill your tenants, track the usage and lots of benefits很有帮助。

上述选项需要更多的思考过程,并且可能需要重写部分或大部分当前代码库。但是,您可以获得的好处将是灵活性、可扩展性、货币收益等方面的高...

HTH

【讨论】:

  • 感谢您的详细解释!
猜你喜欢
  • 1970-01-01
  • 2020-05-28
  • 2021-11-07
  • 2011-08-10
  • 1970-01-01
  • 2018-08-29
  • 2011-05-05
  • 2015-08-17
  • 1970-01-01
相关资源
最近更新 更多