SaaS - Java 中的多租户独立数据库模型实现 [英] SaaS - Multi tenant Separate database model Implementation in Java

查看:45
本文介绍了SaaS - 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

<块引用>

建议我选择技术栈

这是一个非常广泛的问题.我有一些建议,看看这个

I am architecting a software project and I want to achieve a SAAS (Software As a service) model. I want to design a web application compatible to multi tenancy with separate database per tenant.

How can i design Multi tenant UI in Java environment(UI should be tenant configurable in nature)?

How can I design data access layer for separate database per tenant(Single application instance for multiple tenant database)?

And also suggest me to choose technology stack in Java environment.

Thanks in advance.

解决方案

This post has details on the database architecture for multitenancy.

How can i design Multi tenant UI in Java ...

This depends on the requirement. If the tenants views are completely different, different pages, layout, flow etc, then you can have a page per tenant. Usually the pages are similar except that the data view is different. In that case, same ui can be used across tenants and the view driven by tenant configuration. The view should be metadata driven. The view can be configurable by having a configuration mapping/db where each tenants configuration is stored. The tenant can choose what can be displayed during configuration.

How can I design data access layer for separate database per tenant....

This is controlled by the data source. You need to essentially differentiate the data connections and connection pools based on the tenant identifier. This can be achieved using a custom data access object where you instantiate the data source for different tenants. Hibernate provides support for multitenancy http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch16.html

suggest me to choose technology stack in

This is very broad question. I have some suggestions, take a look at this

这篇关于SaaS - Java 中的多租户独立数据库模型实现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆