我目前正在考虑将使用Spring,GWT,Hibernate,Jackrabbit,Hibernate Search/Lucene(以及其他)的单租户基于Java的Web应用程序转换为完全成熟的SaaS风格应用程序.
我偶然发现了一篇文章,其中强调了以下7个"事物"作为对单个租户应用程序进行重要更改以使其成为SaaS应用程序:
我的问题是,是否有人使用与我列出的类似技术在SaaS /多租户应用程序中实现上述任何7项内容?在我走上正在考虑的道路之前,我希望得到关于最佳方法的尽可能多的意见.
作为一个开始,我很确定我能够很好地处理如何在模型级别处理多个租户.我正在考虑为所有表添加租户ID,然后使用Hibernate过滤器(以及Hibernate Search的全文过滤器)根据登录用户的所有查询的租户ID进行过滤.
然而,我对性能也有一些担忧,特别是当我们的租户数量增长很多时.
任何有关如何实施此解决方案的建议都将受到高度赞赏(如果这个问题有点过于开放,我会道歉).
我有一个WAR(app.war)和一个容器(Tomcat,Jetty,Glassfish,等等).我的目标是在容器上按需部署数百个同一Web应用程序的实例.
http://foo/app1 --> app.war
http://foo/app2 --> app.war
http://foo/app3 --> app.war
...
http://foo/appN --> app.war
Run Code Online (Sandbox Code Playgroud)
实现这一目标的一些明显方法:
我想知道是否有更好的方法来做到这一点.理想情况下,创建新实例不应占用任何更多磁盘空间(边缘配置文件除外),并且只占用与线程执行堆栈和其他运行时分配相关的内存.
有任何想法吗?