我想创建一个具有以下架构的 Web 应用程序:
有一些功能被封装在“业务逻辑”模块 (1) 中。它使用 MongoDB 作为数据存储 (5) 和外部(命令行)应用程序 (4)。
应用程序的功能通过两个渠道提供给最终用户:
- Web 应用程序本身 (2) 和
- 公共 API (3),允许第三方应用程序和移动设备访问业务逻辑功能。
Web 应用程序是用 Java 编写的,基于 Vaadin 平台。目前它在 Jetty Web 服务器中运行。
一项重要要求:Web 应用程序应该是可扩展的,即必须能够通过添加新硬件来增加它可以服务的用户/事务的数量。
关于此架构的技术实现,我有以下问题:
可以使用什么技术来实现业务逻辑部分?创建 SCALABLE 应用服务器的明智选择是什么?
我可以为 Web 界面部分 (2) 选择什么 Web 服务器以使其可扩展?有什么选择?
在外部系统 (4) 中完成的计算可能会占用大量 CPU。因此我想以异步方式完成它们,即
a) 用户发送此操作的请求(通过 Web 界面或公共 API,上图中的 2 和 3),即
b) 请求被放入队列,然后
c) CPU 密集型计算已完成,并且
d) 在某个时间点将答案发送给用户。
有哪些技术选项可以实现这种排队(JMS 除外)?
提前致谢
德米特里