【问题标题】:Is CAMEL or other Enterprise integration framework more suitable for this usecase? [closed]CAMEL 或其他企业集成框架是否更适合此用例? [关闭]
【发布时间】:2014-05-21 12:28:14
【问题描述】:

我的应用程序需要作为中间件(MW)工作,它从各种客户那里获得订单(以 XML 形式),其中包含 --------------优先级 1 客户可以将 XML 发送到这些组件之一的供应商 ID

1)JMS queue
2)File system
3)HTTP
4)Web service request(rest/soap)

此 MW 将首先验证传入的请求并将确认发送给请求订单的客户 通过他们的首选渠道。传入的 XML 中存在渠道和客户端点信息。

一旦它得到订单,它需要通过他们的首选渠道以xml的形式向不同的供应商发送订单请求。 我的数据库中有供应商及其首选渠道信息。

所以它是一个企业集成用例。

我打算使用核心 Java 技术来实现它。这是我计划的方法。

将为每种类型的传入请求(JMS 队列、文件系统、HTTP、Web 服务请求(rest/soap))提供四个侦听器/入口端点。 这些侦听器会将 xml 字符串放入 jms 队列中。这将作为接待员工作并使流程异步。

现在我将拥有 jms 消费者,它将在队列上侦听。(消费者可以在同一系统上或与生产者不同,具体取决于负载 生产机器)。这个消费者会将 xml 字符串解析为 java 对象。执行验证。将确认发送至 客户(需要根据客户偏好发送确认。我将使用确认处理器工厂,它将发送 基于偏好的确认)。验证完成后,将此 pojo 转换为另一种 pojo 格式,以便进一步使用 xstream/jaxb 将其编组为 xml 格式并通过soap、jms、文件请求等在他们的首选渠道上发送给供应商(供应商偏好存储在数据库中)。

我遇到了这个 CAMEL 链接http://java.dzone.com/articles/open-source-integration-apache,看起来它提供了完美的解决方案 发现这是企业集成用例。

请专家建议 Camel 是解决此问题的正确方法。或其他一些企业集成框架,如 Spring 集成、ESB 在这种情况下会更有益。如果有人可以指出 ESB 解决这种用例的资源。真的很有帮助。

由于时间限制,我无法探索所有解决方案,因此寻求专家建议以便专注于一个。

【问题讨论】:

    标签: java apache-camel esb spring-integration enterprise-integration


    【解决方案1】:

    像 Camel 这样的东西完全适合这项任务。

    像 Camel 这样的东西提供了工具集和组件,可以更轻松地将您描述的工作流拼接在一起,但需要注意的是,您必须首先学习整个工具(在本例中为 Camel)。

    对于熟练、经验丰富的开发人员和简单的用例,您可以了解他们可能会采用您正在采用的方法。使用手头的工具(可能包括自定义代码)来配置工作流,而不是花时间学习新工具。

    回想一下,虽然工具可以带来很大的好处(功能、测试、质量、文档),但它们也带来了负担(支持、资源、复杂性)。将工具集引入您的环境的一个关键方面是,虽然您可能没有编写代码,但您最终仍要对它在您的环境中的行为负责。

    因此,综上所述,您需要确定为整合像 Camel 这样的工具所花费的时间投资是否值得为您当前的项目带来好处。奇怪的是,如果您打算在未来继续并进行更多集成,那么投资这样一个工具将是一个好主意,因为该工具将使这些集成变得更容易。

    但请注意,像 Camel 这样非常灵活的东西也会带来其固有的复杂性。但是对于像您所说的那样简单的东西,我认为它非常适合。

    【讨论】:

    • 有些人也建议使用 ESB,但我可以找到一个很好的例子,它可以帮助解决这类问题。你知道 ESB 在这里如何提供帮助或 ESB 与 CAMEL 的比较吗?
    • Camel 是一个很棒的企业集成框架。优秀的文档,易于启动和运行,与所有内容集成。
    • ESB 之类的 Apache ServiceMix / JBoss Fuse / 和 fabric8 提供 Camel 作为开箱即用的 EIP 库。但故事是,Camel 只是一个库,而且重量很轻,可以在任何你想要的地方运行。是否在 ESB 中。或者只是在 Apache Tomcat 等常规容器中。这里有一些指向 Camel 与竞争对手的链接:camel.apache.org/articles
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2012-08-31
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多