0

我想用 Java 开发一堆 SaaS 应用程序,但我不确定 wat 是不是最好的方法。

每个应用程序都有一个包含 Web 服务的 WAR,并且至少有一个 Worker-WAR,这是一个等待数据库中的新任务出现然后处理该任务的线程。这个worker包含了应用程序的智能并且使用了大量的cpu。Web 服务使用户可以添加新任务和其他内容......

资源限制

基础设施必须确保以下几点: Web 服务必须始终获得一定量的 cpu 时间才能响应用户。因此,饥饿的 Worker 不能获得所有的 cpu 时间来工作。

每个租户都有自己的工作人员,他们不得相互干扰,因为不可能通过单个任务阻塞整个系统(和所有租户)。

资源共享

能够共享资源会很好,但始终确保在极端情况下每个工作人员和 Web 服务都能获得所需的最小值。

版本控制

随着应用程序的新版本发布,每个租户必须有可能在适应 API 更改时自行启动更新。此外,租户必须能够保留多个应用程序端点(我们称之为渠道)才能拥有生产渠道和测试渠道。在 Beta 频道中,租户可以测试新版本,当他对新版本感到满意时,他可以更新他的生产频道。

用户管理

租户的所有应用程序必须共享一个用户数据库,并且具有相同的身份验证方式。

环境

我想使用 Java EE 7。我会喜欢使用 Wildfly。

问题

实现这些目标的最佳基础设施是什么?我想在我自己的服务器上托管它。

我已经找到的

我了解您不能限制 jvm 中的 CPU 使用率。所以工人必须有自己的jvm。

我查看了诸如 OpenShift Origin 之类的 PaaS 提供程序,但它们似乎鼓励您为每个租户、每个应用程序运行一个应用程序服务器,这在我看来是资源消耗者。

有没有办法让一个 Wildfly 运行并限制每个租户和应用程序的 cpu 使用量?

谢谢你卢卡斯

4

0 回答 0