我以一种更容易理解的方式描述这一点......
为了理解Apache Camel是什么,你需要了解什么是企业集成模式。
让我们从我们可能已经知道的东西开始:单例模式,工厂模式等;它们只是组织你的问题解决方案的方法,但它们本身并不是解决方案。这些模式是由四人帮为我们其他人分析和提取的,当时他们出版了他们的书:设计模式。他们为我们中的一些人节省了巨大的精力来思考如何最好地构建我们的代码。
就像四人帮一样,Gregor Hohpe和Bobby Woolf撰写了《企业集成模式(EIP)》一书,他们在书中提出并记录了一组新的模式和蓝图,用于我们如何最好地设计基于组件的大型系统,其中组件可以在同一进程或不同的机器上运行。
他们基本上建议我们将系统构建为面向消息的 - 其中组件使用消息作为输入和输出来相互通信,而绝对没有其他任何东西。它们向我们展示了一套完整的模式,我们可以从中选择这些模式,并在不同的组件中实现这些模式,这些模式将共同构成整个系统。
那么什么是Apache Camel?
Apache Camel为您提供了EIP的接口,基本对象,常用的实现,调试工具,配置系统以及许多其他帮助程序,当您想要实现解决方案以遵循EIP时,这将为您节省大量时间。
以MVC为例。MVC在理论上非常简单,我们可以在没有任何框架帮助的情况下实现它。但是好的MVC框架为我们提供了随时可用的结构,并且已经加倍努力,并在创建大型MVC项目时考虑了所需的所有其他“侧面”内容,这就是我们大多数时间使用它们的原因。
这正是Apache Camel对EIP的意义所在。这是一个完整的生产就绪框架,适用于想要实施其解决方案以遵循EIP的人员。
如果你有5到10分钟的时间,我通常建议人们阅读Jonathan Anstey的《与Apache Camel的集成》。这是一篇写得很好的文章,简要介绍了和概述了Camel的一些概念,并通过代码示例实现了一个用例。在信中,乔纳森写道:
Apache Camel是一个开源Java框架,专注于使开发人员更容易和更容易地进行集成。它通过提供:
- 所有广泛使用的企业集成模式 (EIP) 的具体实现
- 连接到各种传输和 API
- 易于使用的域特定语言 (DSL) 将 EIP 连接在一起并进行传输
-
如何使用Java中的RESTful Web服务获取远程/客户端IP地址? 我已经在我的项目中编写了Rest Web服务。Web服务调用可能来自不同 machine.so 我需要通过REST Web服务找出IP地址。 从这个请求.getRemoteAddr()使用这个。 但是我不能使用getRemoteAddr()。因为我的请
-
从包含大量文件的zip文件中提取1文件的最快方法是什么? 我尝试了但它们也缺少一些东西。 LZMA SDK不提供一种如何使用的文档/教程,这非常令人沮丧。没有 javadoc。 虽然7z jbinding没有提供一种简单的方法来只提取1个文件,但是,它只提供了提取zip文件
-
输入/输出流在销毁时是否关闭? Java 中的 InputStreams 和 OutputStreams 是否在销毁时关闭()?我完全理解这可能是不好的形式(特别是在C和C++世界中),但我很好奇。 另外,假设我有以下代码: 无名的FileInputStream是否在p.load
-
Java 程序中的字符串大小是否有任何限制? 我有一个字符串定义为 字符串 xx 我可以分配的字符数是否有任何限制? 2) 我正在将用户输入分配给此字符串 xx。70%的人只说一个字。有时他们给出一个大句子,所以想知道可
-