当前位置: 首页 > 知识库问答 >
问题:

阿帕奇骆驼:什么传递信息?

章丰茂
2023-03-14

在像Apache Camel这样的ESB上,什么机制实际上是沿着endpoint到endpoint的路线“行进”(拉/推)消息?

不管怎样,我都很困惑:

  • 如果是RouteBuilder知道通过系统的消息的“流”,那么这个RouteBuilder需要知道业务逻辑:何时endpointA应该将消息传递到endpointBendpointC旁边,但是在我看到的所有Camel示例中,这种业务逻辑并不存在;和
  • 似乎将这种“流”业务逻辑放在endpoint中本身将它们连接在一起,并违背了SOA/ESB/EIP等的一些基本原则。

共有1个答案

龚招
2023-03-14

实际上,我认为camel正在构建一个纯图,其中每个节点都是camelendpoint/处理器,每个边都是两个endpoint(源和目的地)之间的路由。当您调用RouteBuilder的API时,这个图正是它所构建的。当您转到start()a Camel路由时,图很可能被验证并转换成一系列需要执行的runnable,并且可能使用某种自定义的executor或线程管理来处理这些runnable

因此,runnable的执行(处理器在消息到达时处理消息)由这个自定义的executor处理。尽管任务排队的顺序是由RouteBuilder组成的图的总体结构驱动的,但这是一种“推进消息”的机制。

 类似资料:
  • 我试图使用Apache Camel Quartz2实现一个调度器,它每分钟执行一次路由,并按预期执行一些任务。我使用spring DSL实现与apache camel相关联的路由,如下所示: 根据日志,它不会记录为路由记录的消息,例如Direct:DomainsWithFTPUsers等等。请指导如何实现同样的目标。

  • 遵循官方文件(https://camel.apache.org/manual/component-dsl.html#_using_component_dsl)我创建了以下代码: 但是中的告诉我: 并且中的特性不建议导入相应的库。 有人能给我指出正确的方向吗? 我必须理解的概念才能做到这一点吗?

  • 我们需要的是直接的API来设置和使用集群消息队列。我们最初的计划是使用Camel在集群JMS或ActiveMQ队列上进行消费/生产。Kafka如何使这项任务变得更容易?在任何一种情况下,应用程序本身都将在WebLogic服务器上运行。 消息传递将是点对点类型,其中有多个相同服务的实例在运行,但根据负载平衡策略,只有一个实例应该处理消息并发出结果。消息队列也是群集的,因此服务实例或队列实例的失败都不

  • 考虑到apache Camel,我有一个问题:是否可以通过代码来创建全局拦截器,例如AOP?拦截器应该跳过endpoint还是模仿endpoint? 提前致谢

  • 我对骆驼生产商有很好的了解,但我不能对各种骆驼消费者保持清醒的头脑。特别是事件驱动消费者和轮询消费者,camel如何知道为这些消费者调用回调? 消费者的一般流量是多少?

  • 我在projet中使用ApacheCamel,我想使用Product注释发送文件中的对象。首先,可能吗?有更好的办法吗? 其次,我尝试了这个代码片段: 当我调用发布方法时,生产者不是注入(null)。有人有主意吗?提前谢谢。