IAm*_*aja 10 java architecture soa esb apache-camel
在像Apache Camel这样的ESB上,什么机制实际上是沿着从端点到端点的路由"前进"(拉/推)消息?
请问骆驼RouteBuilder
刚刚组成的图形Endpoints
和Routes
以及知道哪些目的地/下一Endpoint
传递一个消息给它访问某后Endpoint
还是做Endpoints
自己知道这是因为它已经处理了消息的下一个目的地.
无论哪种方式,我都很困惑:
RouteBuilder
知道通过系统的消息"流",那么这RouteBuilder
需要知道何时Endpoint A
应该将消息传递给Endpoint B
vs 旁边的业务逻辑Endpoint C
,但是在所有Camel示例中我看到这个业务逻辑没有存在; 和Endpoints
一起将它们组合在一起并破坏了SOA/ESB/EIP等的一些基本原则.IAm*_*aja 10
在幕后我相信camel正在构建一个纯图,其中每个节点都是Camel端点/处理器,每个边是两个端点(源和目标)之间的路由.此图正是RouteBuilder
您调用其API时正在构建的图.当您转到start()
Camel路由时,图表很可能被验证并转换为Runnable
需要执行的一系列s,并且可能使用某种自定义Executor
或线程管理来处理这些Runnable
.
因此,Runnable
s(处理消息的处理器)的执行由该自定义处理Executor
.这是"沿着消息传播"的机制,尽管任务排队的顺序是由组成的图的总体结构驱动的RouteBuilder
.
我建议首先阅读这个QA 什么是Apache Camel? ...以及它所引用的链接,在更多关于Apache Camel的背景上.
业务逻辑可以是任何类型的逻辑,例如Java bean(POJO).Camel允许您以失败的方式访问您的业务逻辑.例如,请参阅这些链接