简介
camel是一个非常强大的基于规则的路由以及媒介引擎
重要名词
-
Camel Context
camel的运行容器,管理所有的camel路由。类似于spring中的context。 -
Route
路由,它定义了Message如何在一个系统中传输的真实路径或者通道。路由引擎自身并不暴露给开发者,但是开发者可以自己定义路由,并且需要信任引擎可以完成复杂的传输工作。每个路由都有一个唯一的标识符,用来记录日志、调试、监控,以及启动或者停止路由。
个人理解为一个流程走向的定义。我们可以定义了一个路由规则,让一个流程按照我们定义的规则走下去,和走公司的报销流程很像。 -
Endpoint
Endpoint作为Camel系统中一个通道的端点,可以发送或者接受消息。在Camel中Endpoint使用URI来配置。在运行时Camel通过URI来查找端点。端点的功能强大、全面而且又可维护。
个人理解为一个路由(流程)的每一个环节,这个endpoint会定义在该环节中做什么操作 -
Component
Component是一些Endpoints URI的集合。他们通过连接码来链接(例如file:),而且作为一个endpoint的工厂。现在Camel中又超过80个Component,可扩展。
个人理解是对Endpoint的一个封装,因为每一类Endpoint都需要一个uri作为入口。那么就需要对这个Endpoint的producer和consumer进行封装。 -
Exchange :
一个消息之间通信的抽象的会话。主要包括:
ExchangeId(唯一标识)
MEP(一种模式,有InOnly、OutOnly等)
Exception(路由过程中的异常)
Properties(可以进行传递的属性,是键值对)
Message(InMessage和OutMessage)。 -
Message
Camel中一个基本的包含数据和路由的实体,Messages包含了
唯一的识别(Unique Identifier)–java.lang.String类型
头信息(Headers)–会提供一些内容的提示,头信息被组织成名值对的形式,string–>Object
内容(body)是一个Object类型的对象,这就意味着,你要确保接收器能够理解消息的内容。当消息发送器和接收器使用不同的内容格式的时候,你可以使用Camel的数据转换机制将其转换为一个特定的格式。在许多情况下预先定义类型可以被自动转换。
错误标记(fault flag)使用来标记正常或者错误的标记,通常由一些标准类定义,例如(WSDL) -
Processor
是一个消息接受者和消息通信的处理器。当然,Processor是Route的一个元素,可用来消息格式转换或者其他的一些变换。
个人理解就是对exchange做处理的一个环节,不过是将它单独拿出来而已。