Apache Camel 基本概念理解

时间:2021-04-25 15:39:54

简介

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做处理的一个环节,不过是将它单独拿出来而已。