【问题标题】:Multiple instances of a java web application sharing a resource共享资源的 Java Web 应用程序的多个实例
【发布时间】:2008-10-06 11:04:02
【问题描述】:

我有一个 Web 服务,它接受输入的 xml 消息,对其进行转换,然后将其转发到另一个 Web 服务。

出于性能和弹性原因,应用程序被部署到两个 Web 逻辑应用服务器。

我想要一个允许两件事的网站监控页面

  • 能够停止/开始转发消息

  • 能够监控过去一小时内消息数量的吞吐量等。进入 Web 服务的不同发件人数量等。

我想知道实现它的最佳方法是什么。

我目前的想法是拥有一个内存数据库(例如 Debry 或 HSQL)复制数据,以便在我的应用程序的两个(或多个)实例之间共享信息,这些实例在应用服务器的不同实例中运行。我想我必须设置某种主/从配置。

我想要一个链接到讨论如何解决这个问题的文章。

(注意,这是一个使用spring MVC的简单spring应用)

谢谢,

大卫。

【问题讨论】:

    标签: java spring jakarta-ee weblogic


    【解决方案1】:

    这听起来很适合Java Management Extensions (JMX)

    • JMX 允许您公开某些操作(例如:开始/停止转发消息)
    • JMX 允许您监控某些性能指标(例如:已处理消息的移动平均值)

    Spring 很好地支持将 bean 公开为 JMX MBean。请参阅here 了解更多信息。

    然后您可以使用基于 Web 的开源 JMX 控制台,例如 jManage

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      听起来您正在寻找消息队列、一些 MDB 和可配置设计可以让您完成所有这些工作。如果我没记错的话,Spring 支持 JMS 队列

      【讨论】:

        【解决方案3】:

        我认为您正在寻找消息队列。如果您需要额外的监控,使用 Web 服务作为端点可能是不够的 - 关于停止/启动或转发消息;监控对 Web 服务的 http 请求比跟踪消息到队列更麻烦(即使你可以做到)。

        如果您将此服务公开给第三方,那么 Web 服务将位于消息队列的顶部并委托给它。

        根据我的经验,RabbitMQ 是一个很好的消息队列服务,学习曲线相对简单。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-06
          • 1970-01-01
          • 1970-01-01
          • 2011-06-24
          • 2011-09-29
          • 2010-10-15
          相关资源
          最近更新 更多