共享资源的Java Web应用程序的多个实例

时间:2008-10-06 11:04:02

标签: java spring java-ee weblogic

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

该应用程序部署到两个Web逻辑应用程序服务器,以提高性能和弹性。

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

  • 停止/开始转发消息的能力

  • 能够监控过去一小时内的邮件数量等。进入网络服务等的不同发件人的数量。

我想知道实现这个目标的最佳方法是什么。

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

我希望链接到一篇讨论如何解决这个问题的文章。

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

感谢,

大卫。

3 个答案:

答案 0 :(得分:5)

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

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

Spring很好地支持将bean暴露为JMX MBean。有关详细信息,请参阅here

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

希望这有帮助。

答案 1 :(得分:0)

听起来你正在寻找一个消息队列,一些MDB和一个可配置的设计可以让你做所有这些。如果我没错,Spring支持JMS队列

答案 2 :(得分:0)

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

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

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