我一直在仔细研究 Apache Camel 文档,试图对其两个最重要的内容有具体的了解basic概念(端点和路由),尽管这些术语在整个文档中随处可见,但我找不到任何参考资料来实际定义它们是什么以及它们的用途。尽管他们的名字听起来相当明显,而且我think我了解它们是什么,我现在被分配到一项让我陷入 Apache Camel Land 的任务,了解这些机制是什么绝对至关重要。
我的猜测是,“端点”只是一个 bean - 可以像其他任何 bean 一样在配置文件中配置 - 将名称映射到 URI/端口组合(这取自 W3C 文档)。在 Apache Camel 的背景下,我的guess端点用于将组件连接在一起,以便可以在它们之间形成“路线”(连接/映射)。因此,当位于端点 1 的组件 A 想要与位于端点 2 的组件 B 通信时,只要存在从 1 到 2 的映射,Camel 就能够在两者之间传输消息。
如果我错了,请阻止我并纠正我!
现在,我看到了一些示例,看起来可以在 Java 中配置路由:
from("endpointA").routeId("someMessage").to("endpointB");
我见过一些示例,看起来路由可以在 XML 中配置:
<route id="">
<from .../>
<to .../>
</route>
这两种配置路由的方法是不同的还是完全不同的概念?
最后,可以在端点之间路由的消息的格式是什么?例如,如果必须是 XML,那么这些路由消息的 XSD/架构是什么?如果它必须是 Java 对象,那么 Camel 可以发送的对象有哪些边界/限制?
看来您已经很好地掌握了这个概念。
我认为用更抽象的术语来思考端点是有帮助的。这骆驼文档 http://camel.apache.org/endpoint.html这里没有太大帮助。端点可以被认为是组件的接口。每个组件可以配置 1 个或多个端点。它帮助我在路线的上下文中思考端点。一个简单的路由可以从端点 A(这可以是 JMS 队列、tcp 套接字、文件或任何骆驼组件)前往端点 B(可以是任何骆驼组件)。当然,您也可以在路径中使用处理器来转换数据。
您给出的两个创建路线的示例只是创建路线的两种方法。它们是同一概念的示例。第一个是 Java DSL,第二个使用 XML。
消息的格式通常是 XML,并且 XML 可以是任何有效的 XML,并且不需要绑定到 XSD。该消息也可以是任何 Java 对象。只要它保留在 JVM 中(即不通过套接字),它就不需要可序列化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)