【问题标题】:Achieve Multi-tenancy with GATE使用 GATE 实现多租户
【发布时间】:2014-10-31 06:09:08
【问题描述】:

我在我的一个应用程序中使用 GATE,但很少有与多租户相关的查询。我的要求如下。

  • 我为每个用户设置了关键字,具体取决于 哪个用户登录了,我需要用 适用的关键字集。
  • 在给定时间可能有多个用户登录到我的 应用程序,我想确保多租户 方法不会低效。
  • 我不想将每个用户的关键字存储在 .lst 中 文件但将其存储在数据库(mongo)上并仅在 运行时。

我在网上搜索了几个示例,虽然我发现了一些关于使用处理资源的想法,但我不知道性能会受到什么影响。

非常感谢您的帮助。

提前致谢,

萨吉特

【问题讨论】:

    标签: multi-tenant gate


    【解决方案1】:

    这是 GATE 地名词典的一个有趣用例。

    我认为您绝对应该做的一件事是在创建文档时将用户 ID 作为一项功能添加。这样您以后就可以在处理资源中进行 MongoDB 查询。

    在处理文档时,您有多种选择:

    1. 创建一个自定义 PR,它调用 MongoDB 并复制 DefaultGazetteer 代码,但使用覆盖的“init”方法(或继承或包装它,如果可能的话,还没有研究太多细节)。您应该提供关键字列表,而不是默认的 init 方法,然后设置所需的字段并调用 execute()。

    2. 如果您没有太多关键字,请创建一个自定义 PR(或 groovy 脚本 PR),它调用 MongoDB 并执行一些简单的正则表达式搜索,例如 the one in this thread。 他们还建议在 cmets 中使用 stringsearch 库。然后只需使用开始和结束索引自行创建查找注释。

    3. 您说过您不希望这样,但仍然可以通过默认值和哈希地名词典处理数百万个单词。不过,您应该小心,因为如果您有太多注释,门文档可能会占用大量内存 - 在您的情况下,需要查找所有用户关键字。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2018-11-14
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多