【问题标题】:service architecture - webservies | soa服务架构- 网络服务|索阿
【发布时间】:2012-04-24 09:48:49
【问题描述】:

我想了解哪种方法最适合管理以下场景。

例如,有 25 个应用程序主要是在 java 中,并且基于 web 部署在不同的平台 jboss、websphere 和 tomcat 上。每个应用程序公开 3 -5 个服务,并且还使用来自其他应用程序的服务。它们中的大多数是同步的,并根据需要触发。下面的一些用例,

  1. 当患者入院时,这会向 4 -5 个对入院详细信息(同步)感兴趣的系统发送消息。
  2. 计费系统将详细信息发送到另一个系统以计算折扣(同步)
  3. 通过传递 id 获取患者详细信息。 (同步)

因此,如果您尝试在图片中表示整个图表,那么每个系统之间会出现如此多的硬编码静态线。

问题

  1. 在用户抱怨某些事情不工作之前,没有通用的方法可以找到每个系统或 Web 服务的运行状况。

  2. Web 服务和端点过多,无法跟踪。

  3. 由于应用服务器和容器不同,跨不同标准 JAX-wS、Jax-RS 实施。

  4. 有些消息相同,但细节略有不同。因此,可重用性降低,最终为每个自定义需求提供新服务。

什么样的解决方案更适合解决上述问题?

【问题讨论】:

    标签: java web-services architecture soa


    【解决方案1】:

    这在大型企业中是一个困难且普遍的问题。您可以看到将enterprise service bus 集成到您的公司以促进 SOA。然后,您可以为生态系统中的每个系统实施适配器。适配器接口将受到严格控制、记录和标准化。 不过这样做的成本相当高。

    关于检查系统运行状况。您可以考虑使用诸如Nagios 之类的平台。您需要识别一些无害的 Web 服务(例如基本阅读),这些服务可用于确定给定系统是否“启动”。然后 Nagios 可以定期调用它。

    【讨论】:

    • 感谢 Nick Ryan 抽出宝贵时间。是的,ESB 是我们正在密切关注的一种选择。但是现在我看到很多艺术说 SOA 已经死了等等,这让我对它持怀疑态度。我正在查看的其他选项是 AMQP,例如 Rabbit MQ,还计划将一些容易出错的 Web 服务迁移到计划 REST/JSON 中。
    【解决方案2】:

    您需要一个 ServiceBus,它不必是一个成熟的 ESB,但您确实需要一个集成和中介点,以确保您管理不同的端点类型和不同的协议,而无需求助于 1-1 连接.

    您可以查看Fuse Mediation Hub(基于apache camel)。再次从您拥有的不同服务中外部化集成逻辑将为您提供更大的灵活性。例如,它可以让您将不同的服务迁移到您提到的 REST/JSON,而无需更改依赖于正在发展的服务的每个服务(在整个过渡过程中保持整个工作正常)。

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

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 2018-06-16
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多