2008-10-06 87 views
1

我有一个web服务,它接受一个输入xml消息,转换它,然后将其转发到另一个web服务。共享资源的java web应用程序的多个实例

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

我想一个网站监测页面,让两件事情

  • 能力停止/启动消息转发

  • 监测吞吐量的消息的数量在过去一小时等能力进入web服务的不同发件人的数量等。

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

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

我很喜欢一篇文章的链接,讨论如何解决这个问题。

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

感谢,

大卫。

回答

0

听起来像是你正在寻找一个消息队列,一些多边开发银行和可配置的设计将让你做这一切。 Spring对JMS队列支持,如果我没看错

5

这听起来像一个良好的匹配Java Management Extensions (JMX)

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

Spring对于将bean公开为JMX MBean提供了很好的支持。有关更多信息,请参阅here

那么你可以使用一个开源的基于Web的控制台JMX,如jManage

希望这有助于。

0

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

如果你暴露此服务的第三方,那么Web服务将坐在消息队列的顶部,并委托给它。

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

相关问题