【问题标题】:Architecture: Technological questions建筑:技术问题
【发布时间】:2011-08-15 21:03:50
【问题描述】:

我想创建一个具有以下架构的 Web 应用程序:

有一些功能被封装在“业务逻辑”模块 (1) 中。它使用 MongoDB 作为数据存储 (5) 和外部(命令行)应用程序 (4)。

应用程序的功能通过两个渠道提供给最终用户:

  1. Web 应用程序本身 (2) 和
  2. 公共 API (3),允许第三方应用程序和移动设备访问业务逻辑功能。

Web 应用程序是用 Java 编写的,基于 Vaadin 平台。目前它运行在 Jetty 网络服务器中。

一个重要的要求:Web 应用程序应该是可扩展的,即。 e.必须能够通过添加新硬件来增加它可以服务的用户/事务的数量。

我对这个架构的技术实现有以下疑问:

  1. 可以用什么技术来实现业务逻辑部分?创建 SCALABLE 应用服务器的明智选择是什么?

  2. 我可以为 Web 界面部分 (2) 选择什么 Web 服务器以使其可扩展?有哪些选择?

  3. 在外部系统 (4) 中完成的计算可能会占用大量 CPU。因此,我想以异步方式执行它们,即。 e.

a) 用户发送此操作的请求(通过 Web 界面或公共 API,上图中的 2 和 3),即

b) 请求被放入队列中,然后

c) CPU 密集型计算已完成,并且

d) 在某个时间点将答案发送给用户。

有哪些技术选项可以实现这种排队(JMS 除外)?

提前致谢

德米特里

【问题讨论】:

标签: web-services architecture jakarta-ee jms vaadin


【解决方案1】:

为了扩展交互,你看过 Drools 网格、Akka 或 JPPF 吗? 为了使 Web 应用程序具有可扩展性,您是否考虑过 Terracotta 或 Glassfish 集群功能(如果我记得很清楚,Vaadin 是 glassfish 的合作伙伴)?

【讨论】:

    【解决方案2】:

    由于没有人回答我的问题,我会自己回答。

    从其他资源中,我了解到以下技术可用于实现此架构:

    1) Spring for Business 逻辑 (1)

    2) GridGain 或 Apache Hadoop 用于扩展与外部系统的交互 (4)

    3) Hazelcast 使 Web 应用程序可扩展(2,服务器端会话)。

    【讨论】:

      猜你喜欢
      • 2022-08-24
      • 1970-01-01
      • 2011-10-18
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多