服务架构 - Web服务 | 面向服务架构(SOA)

4
我希望了解如何最好地管理以下场景。例如,有25个主要使用Java的Web应用程序,部署在不同的平台上,如JBoss、WebSphere和Tomcat。每个应用程序都公开3-5个服务,并从其他应用程序中使用服务。大多数是同步的,并根据需要触发。以下是一些用例:
1. 当患者入院时,这将向4-5个对入院详细信息感兴趣的系统发送消息(同步)。 2. 计费系统向另一个系统发送详细信息以计算折扣(同步)。 3. 通过传递ID获取患者详细信息(同步)。
因此,如果您试图在图片中表示整个图表,将会有许多硬编码的静态线路连接每个系统。
问题如下: 1. 没有通用的方法来查找每个系统或Web服务的健康状况,除非用户投诉某些事情无法正常工作。 2. 太多的Web服务和端点需要跟踪。 3. 实现跨不同标准JAX-wS、Jax-RS,由于不同的应用服务器和容器。 4. 一些消息具有相同但稍有不同的详细信息。因此可重用性降低,最终需要针对每个自定义需求提供新的服务。
哪种解决方案更适合解决上述问题?
2个回答

1

这是大型企业中一个棘手而常见的问题。您可以考虑将企业服务总线集成到公司中以促进SOA。然后,您可以为生态系统中的每个系统实现适配器。适配器接口将受到严格控制、文档化和标准化。

不过,这样做的成本相当高。

关于检查系统健康状况。您可以考虑使用Nagios等平台。您需要识别一些无害的Web服务(例如基本读取),以确定给定系统是否“正常”。然后,Nagios可以定期调用此服务。


感谢Nick Ryan抽出时间。是的,ESB是我们正在密切关注的一个选项。但是现在我看到很多文章都说SOA已经死了之类的话,这让我对它持怀疑态度。我正在考虑的另一个选择是AMQP,例如Rabbit MQ,同时计划将一些容易出错的Web服务迁移到规划中的REST / JSON中。 - cresc

0

你需要一个ServiceBus,它不必是完整的ESB,但你确实需要一个集成和中介点来确保管理不同的端点类型和不同的协议,而不必诉诸于1-1连接。

你可以看看Fuse Mediation Hub(基于apache camel)。再次将不同服务的集成逻辑外部化将为你提供更多的灵活性。例如,它将允许你将不同的服务迁移到REST/JSON,而无需更改依赖于正在演变的服务的每个服务(在整个过渡期间保持整个系统运行)。

关于监控 - 你可能想考虑看看splunk,它可以连接到许多来源(应用程序服务器的日志、JMX、SNMP)并关联事件。他们有一个免费版本(每天最多500Mb的数据)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接