我正在构建一个软件项目,我想实现一个 SAAS(软件即服务)模型。我想设计一个与多租户兼容的 Web 应用程序,每个租户都有单独的数据库。
如何在 Java 环境中设计多租户 UI(UI 本质上应该是租户可配置的)?
如何为每个租户的单独数据库设计数据访问层(多租户数据库的单个应用程序实例)?
并且还建议我选择Java环境中的技术栈。
提前致谢。
我正在构建一个软件项目,我想实现一个 SAAS(软件即服务)模型。我想设计一个与多租户兼容的 Web 应用程序,每个租户都有单独的数据库。
如何在 Java 环境中设计多租户 UI(UI 本质上应该是租户可配置的)?
如何为每个租户的单独数据库设计数据访问层(多租户数据库的单个应用程序实例)?
并且还建议我选择Java环境中的技术栈。
提前致谢。
这篇文章详细介绍了多租户的数据库架构。
我如何在 Java 中设计多租户 UI ...
这取决于要求。如果租户视图完全不同,不同的页面、布局、流程等,那么您可以为每个租户拥有一个页面。通常页面是相似的,只是数据视图不同。在这种情况下,可以跨租户使用相同的 ui,并且视图由租户配置驱动。视图应该是元数据驱动的。可以通过存储每个租户配置的配置映射/数据库来配置视图。租户可以选择在配置期间可以显示的内容。
如何为每个租户设计单独的数据库的数据访问层......
这是由数据源控制的。您需要根据租户标识符从本质上区分数据连接和连接池。这可以使用自定义数据访问对象来实现,您可以在其中为不同租户实例化数据源。Hibernate 支持多租户http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch16.html
建议我选择技术堆栈
这是一个非常广泛的问题。我有一些建议,看看这个