我想用Java开发一堆SaaS-Applications,我不确定wat是最好的方法。
每个应用程序都有一个包含Web服务的WAR,并且至少有一个Worker-WAR,它是一个线程,等待DB中的新任务出现,然后再处理此任务。这个worker包含应用程序的智能并使用了大量的cpu。 Webservice为用户提供了添加新任务和其他内容的可能性......
基础设施必须确保以下内容: Web服务必须始终获得一定量的CPU时间才能响应用户。因此,饥饿的工人不能为其工作获得所有的cpu时间。
每个租户都有自己的工作人员,他们不能互相干扰,因为一个任务一定不可能阻止整个系统(和所有租户)。
能够共享资源会很高兴,但始终确保在极端情况下,每个工作人员和Web服务都能获得所需的最低限度。
随着应用程序的新版本的发布,每个租户必须能够在适应API-Changes时自行启动更新。此外,租户必须能够保留多个应用程序端点(让我们称之为通道)才能拥有生产渠道和beta渠道。在Beta-Channel中,租户可以测试新版本,当他对新版本感到满意时,他可以更新他的制作频道。
租户的所有应用程序必须共享用户数据库,并采用相同的方式进行身份验证。
我想使用Java EE 7.我很乐意使用Wildfly。
实现这些目标的最佳基础设施是什么?我想在我自己的服务器上托管这个。
据我所知,你不能限制jvm中的CPU使用率。因此,工人必须拥有自己的jvms。
我看过像OpenShift Origin这样的PaaS-Providers,但似乎他们鼓励你为每个应用程序运行一个应用程序服务器,这对我来说是一个资源食用者。
是否无法运行一个Wildfly并限制每个租户和应用的CPU使用量?
谢谢 卢卡斯