gpt4 book ai didi

java - Apache Camel : What marches messages along?

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:06 25 4
gpt4 key购买 nike

在像 Apache Camel 这样的 ESB 上,什么机制实际上是沿着从一个端点到另一个端点的路由“行进”(拉/推)消息?

Camel RouteBuilder 是否只是组成一个 EndpointsRoutes 的图表,并知道哪个目的地/下一个 Endpoint在消息访问某个 Endpoint 之后将消息传递给,或者让 Endpoints 自己知道哪个是它已处理的消息的下一个目的地。

不管怎样,我很困惑:

  • 如果 RouteBuilder 知道消息在系统中的“流动”,那么这个 RouteBuilder 就需要知道何时 的业务逻辑端点 A 应该在 Endpoint B vs Endpoint C 旁边传递消息,但在所有 Camel 示例中,我看到这个业务逻辑不存在;和
  • 似乎将这种“流”业务逻辑放在 Endpoints 本身中将它们耦合在一起,并违背了 SOA/ESB/EIP 等的一些基本原则。

最佳答案

在幕后,我相信 camel 正在构建一个纯图,其中每个节点都是一个 Camel 端点/处理器,每条边是两个端点(源和目的地)之间的路由。当您调用其 API 时,此图正是 RouteBuilder 正在构建的内容。当您转到 start() 一个 Camel 路由时,该图很可能被验证并转换为一系列需要执行的 Runnable,并且可能使用某种自定义 Executor 或线程管理来处理这些 Runnable

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

关于java - Apache Camel : What marches messages along?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com