Apache Camel:
概念:是一个基于 规则路由 和 processor处理 的引擎。
官网介绍:Camel允许您创建企业集成模式,以基于Java的域特定语言(或Fluent API),基于Spring或Blueprint的Xml配置文件或通过Scala DSL实现路由和中介规则。
这意味着无论是在Java,Scala还是XML编辑器中,您都可以在IDE中智能地完成路由规则
主要功能:协议转换,消息路由
核心思想:从一个from源头得到数据,通过processor处理,再发到一个to目的地. 这个from和to可以是我们在项目集成中经常碰到的类型:一个FTP文件夹中的文件,一个MQ的queue,一个HTTP request/response,一个webservice等等.
要素:
Camel Context:Camel的运行容器,管理所有的camel路由,类似Spring的context.
CamelContext是对Camel运行时的一个抽象,一般来说一个Camel应用里会有一个CamelContext对象;
Route:路由;定义了Message在一个系统中传输的真实路径/通道。开发者可以自己定义路由,并且需要信任引擎可以完成复杂的传输工作。每个路由都有唯一的标识符,用来记录日志,调试,监控,以及启动或停止路由。
ASB中路由在csb-routes中的restproxy中,其中的CallRecordPolicy中的onstart(),onStop()等方法定义了路由调用前后的操作等,ValidityCheck(implements Processor)定义了访问路由时的参数检查
路由就是对于一个Message的处理流程的定义,定义路由规则即为定义一个流程,让其按照我们定义的规则走下去
一个route就是将从输入队列中得到的消息,通过一步步设置好的逻辑判断(例如过滤器和路由规则),到达一个目标队列中(如果有的话);Camel为应用开发者提供了两种方式来定义这些路由规则:
Processor:是一个消息接收者和消息通信的处理器(一个处理消息的类)。Processor是Route的一个元素,可用来消息格式转换或者其他的一些变化;