gpt4 book ai didi

grails - 最适合 Multi-Tenancy /多模板 SAAS 应用程序的 Web 框架

转载 作者:行者123 更新时间:2023-12-01 01:28:50 25 4
gpt4 key购买 nike

我正在构建一个新的 SAAS 应用程序,并正在寻找一些关于最合适的框架的建议。我意识到没有一个框架可能能够完成所有这些工作,但我想我会询问社区并尝试找到一个可以解决最困难问题的框架。

要求

  • 单一代码源。 (每个客户都有一个子域或不同的域,但每个人都应该在相同的代码库和相同的服务器上运行)
  • 应该能够更新一次编程源并让所有租户拿起它
  • session 信息应保存在缓存存储中,或仅保存在 cookie 中(无共享状态)
  • 内置 Multi-Tenancy 数据库功能。(根据用于访问应用程序的域,框架应自动使用分配给该域的数据库连接信息)
  • 每个客户/域可能有自己的网页模板。模板需要在每个客户的基础上分配,并保持在应用程序代码之外
  • 安全性和快速原型(prototype)制作比速度更重要
  • 会有很多 CRUD 类型的屏幕,所以需要简单的内置功能

  • 我有相当长的 Java 和 PHP 经验,但只考虑 PHP 作为最后的手段。我的 Scala、Python 和 Ruby 经验有点生疏,但如果它们提供显着优势,我不介意加快速度。我看过剧!框架和喜欢它(很好地满足#1、#2、#6),但 Multi-Tenancy 方面不是很强大。我已经使用 Grails 完成了几个项目,它可以处理除了 #3 和 #5 之外的所有内容,并且可以被黑客入侵来完成其余的工作。

    最佳答案

    我想说第三点是相当独立于 grails/play/whatever 的。如果您需要共享缓存,则有许多提供者,并且 Grails 中的大多数提供者都有插件。

    grails 中的 Multi-Tenancy 非常成熟,并且比 Sebastiens 回答中的博文中的解决方案更具侵入性。无论您是使用单租户(多个数据库)还是 Multi-Tenancy ,对您的代码来说或多或少都是透明的,并且大部分令人头疼的问题都被抽象掉了。请注意,您需要进行一些智能索引(例如在多列索引中包含租户 ID 等),以免在数据开始增长时获得非常糟糕的速度。

    至于外部化 View ,您可以将它们放在数据库中,也可以将它们符号链接(symbolic link)到您的 web 应用程序中,然后将它们保存在单独的编号文件夹中。然后从租户插件中,您可以使用 TenantUtils.getCurrentTenant()并简单地从适当的文件夹 "/" + (tenantID ?: "default") + "/whatever/view/path" 渲染.这样,如果您愿意,可以在租户之间共享布局等,您只需将租户特定的东西放在租户特定的文件夹中。

    您也可以在游戏中执行此操作,或者 ,但我看不出有什么阻碍您在 Grails 中执行此操作。

    我在这个问题上的 0.02 美元。

    关于grails - 最适合 Multi-Tenancy /多模板 SAAS 应用程序的 Web 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063737/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com