当前位置: 首页 > 面试题库 >

骆驼路线和终点

洪逸清
2023-03-14
问题内容

我一直在仔细研究Apache Camel文档,试图对它的两个 最基本
概念(端点和路由)有一个具体的了解,尽管这些术语在文档中各处都使用,但是我找不到真正定义它们的参考。是以及它们的用途。尽管它们的名称听起来很明显,而且我
我理解它们的含义,但是现在我已被分配到一项使我深深陷入Apache Camel Land的任务,而了解这些机制的绝对至关重要是。

我的猜测是,“端点”只是一个bean(可以像其他任何配置文件一样在配置文件中进行配置),该bean将名称映射到URI
/端口组合(取自W3C文档)。在Apache Camel的上下文中,我的 猜测
是使用端点将组件连接在一起,以便可以在它们之间形成“路由”(连接/映射)。因此,当位于端点1的组件A要与位于端点2的组件B进行通信时,只要存在从1到2的映射,Camel就能够在这两个之间传输消息。

如果我错了,请阻止我并纠正我!

因此,现在,我看到了一些示例,其中看起来可以在Java中配置路由:

from("endpointA").routeId("someMessage").to("endpointB");

我看过一些示例,其中的路由看起来可以用XML配置:

<route id="">
    <from .../>
    <to .../>
</route>

这是两种配置路由的方法,还是完全不同的概念?

最后, 可以在端点之间路由的消息的格式是什么? 例如,如果必须是XML,这些路由消息的XSD
/模式是什么?如果必须是Java对象,则对Camel可以发送的对象有什么限制/限制?


问题答案:

似乎您已经对该概念有了相当的了解。我认为用更抽象的术语来考虑端点是有帮助的。在骆驼的文档是没有多大帮助这里。可以将端点视为与组件的接口。每个组件可以配置1个或多个端点。它可以帮助我考虑路由上下文中的端点。一个简单的路由可以从端点A(可以是JMS队列,tcphtml" target="_blank">套接字,文件或任何骆驼组件)到达端点B(可以是任何骆驼组件)。当然,您也可以在路由中使用处理器来转换数据。

您提供的创建路线的两个示例仅是创建路线的两种方法。它们是同一概念的示例。第一个是Java DSL,第二个是XML。

消息的格式通常是XML,并且XML可以是任何有效的XML,不需要绑定到XSD。该消息也可以是任何Java对象。只要它停留在JVM中(即不通过套接字),就不需要可序列化。



 类似资料:
  • 嗨,我在camel中有一个JMS消费者路由,我的要求是在特定事件时停止/暂停该路由(基于某个字段值),然后使用调度器恢复该路由。为此,我创建了两个路由,一个是我的原始jms消费者路由,另一个是调度程序路由,它们恢复jms消费者路由,虽然我能够暂停路由,但第二个路由不恢复暂停的路由,它显示的状态为已启动。 以下是我的两条路线 请帮助我如何实现上述场景。

  • 问题内容: 我尝试对Apache骆驼路线进行junit测试。像这样的东西: 构建器类的定义如下 “ myExportRouteProcessor”类仅从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。当前,处理器未启动。我该怎么办? 问题答案: 您可以使用AdviceWithRouteBuilder#replaceFromWith直接替换测

  • 我试着为阿帕奇骆驼路线做一个jUnit测试。类似于这样: builder类的定义如下 myExportRouteProcencer类只是从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。目前,处理器没有被触发。我应该做些什么?

  • 我有一个Springboot应用程序,其中配置了一些驼峰路线。 我想测试从到的路由。我试过这里提到的不同东西http://camel.apache.org/camel-test.html,但似乎无法让它工作。 我正在尝试这样做: 但是我的ProducerTemplate总是。我尝试了自动连接CamelContext,但遇到一个异常,它无法解析CamelContext。但这可以通过添加到类。但是我的

  • 我通过以下代码以编程方式创建JMS路由: 我有课: 我想在上述路由和endpoint之间交换一些信息/参数。根据我想要的参数值,选择要在这个消息侦听器容器中设置的连接工厂。 请让我知道我是否能够解释我的问题陈述。 还有其他方法可以实现这一点吗?我想在运行时构建连接工厂,路由也是如此。JmsEndpoint 中是否有任何方法可以用来了解路由 id?

  • 我设置了一个endpoint,如下所示: 我用骆驼石英2.22.2和石英1.8.6 下面是从关闭到启动上下文的日志。