2009-10-06 24 views
2

我正在研究“门面web服务”,我需要重新考虑它的一部分。“门面web服务”的监视和记录策略?

的情况下 - 我的web服务(姑且称之为 “FacadeWebservice”)是开发从我的系统中隐藏的其他web服务的复杂的内部Web服务:

  • FacadeWebservice电话ExternalWebserviceAExternalWebserviceB和将很快需要致电ExternalWebserviceC
  • ExternalWebserviceAExternalWebserviceBExternalWebserviceC是外部web服务;他们可能会改变和停机。

复杂性越来越高,我需要重新思考我监控FacadeWebservice和外部Web服务的方式。我需要:

  • 我的应用程序状态的完整视图(呼叫次数,错误代码发送)
  • 发生了什么事情与外部Web服务(外部web服务宕机的一个好主意,用我的web服务收到效应初探码 - 例如,他们中的一个经常出现“技术错误/只读”一段时间)
  • 基本上,一个简单的视图/工具,显示整体状态。
  • 服务可用性相当多(所以我不需要像Nagios这样的应用程序),我想知道应用程序级别发生了什么。

我正在考虑在我的FacadeWebservice中使用JMX--这可能会给我一些无用的图形和统计信息。

这是要走的路吗?或者一个好的日志策略足以完成这项任务(即使外部变化是我的问题的重要组成部分)?

有关该主题的任何建议或经验?

回答

2

这是一个相当复杂的要求,但你可以尝试JavaMelody,http://javamelody.googlecode.com

  • “应用现状(电话号码,发送错误代码)”:是的,通过和http HTTP调用的一些错误
  • “外部web服务”的统计:是的,它可以与JavaMelody通过拦截器,如果你使用EJB3或弹簧做
  • JavaMelody并监控在应用层面,它有“图表和统计”:见截图
+0

接受! JavaMelody看起来不错。看起来你是这个项目的主要贡献者。 – 2009-10-19 08:07:09

+0

是我主要贡献者 – evernat 2009-10-20 08:12:59

2

JMX的优点是可以运行命令和查询复杂的数据。

缺点是标准控制台(与Java版本一起使用)相当有限。它可以做任何事情,但没有什么好的。

我的解决方案是创建一个简单的HTML页面来显示数据。它具有以下优点:

  1. 我可以很容易地格式化我希望看到我的方式最有用的数据。

  2. 我可以使用任何Web浏览器来一看(在家里,网吧,手机)

主要缺点是,它不是那么容易显示复杂的数据(如图形和趋势)。

[编辑]也就是说,JMX支持显示图形和趋势,但它没有记忆。所以,从开始使用JMX控制台开始就会发生什么。如果您需要查看过去,您必须始终在某处运行JMX控制台。

在这种情况下,将图形渲染模块添加到“简单HTML页面”中可以更简单,您可以在其中绘制所需的图形。

+0

感谢您的anwser(upvoted!)。显示复杂的数据和趋势是我需求的重要部分。 – 2009-10-08 10:04:51

+0

@Aaron我没有考虑JMX的“无记忆”缺点。因此创建一个简单的HTML页面是一个好方法。 – 2009-10-19 08:04:43

1

我不知道这是一个选项,但它看起来像你需要由ESB组件提供的一些功能:

  • 聚集,Web服务
  • 监测组合物和编排(电话号码,的proxyed Web服务健康等)
  • 管理控制台
  • 等等等等

也许你应该检查出类似的ServiceMix,可以监测通过JMX(见Using a JMX Console with ServiceMix):

alt text http://servicemix.apache.org/jmx-console.data/jconsolembeans.jpg

或其它商业工具(Mule ESB Enterprise ALSB Oracle服务总线...)。

+0

@Pascal ESB看起来不错,但我认为这对我的要求有点沉重。 – 2009-10-19 08:05:31

+0

@布莱恩经典构建vs购买决定可能是一个艰难的呼吁......我不知道你的(未来)需要比你更好,你一定是对的:) – 2009-10-19 08:28:02