简介
Mule是一个基于Java的轻量级消息框架,用来将多个应用连接起来并保证应用之间可以交换数据。Mule提供了在多个应用间可以读取、转换和发送数据的消息框架来解决这一问题,核心就是在应用之间进行消息路由的消息总线。
主要功能
服务的创建与管理:用Mule ESB作为一个轻量级的服务容器来暴露和管理可重用的服务。
服务调解:隐藏服务消息的格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用。
消息路由:基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。
数据转换:在不同的格式和传输协议中进行转换数据。
Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、TransactionManagement(事务管理)、Transformation(转换)、Message Broker(消息代理)、TransportationManagement(传输管理)、Security(安全)等核心模块。Mule可以单独使用,也可以架设在常用的应用服务器上。
基本概念
Model
Model表示托管各个服务的运行时环境。
Service
Service是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。
Transport
Transport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。
Connector
Connector用于管控特定协议的使用,如HTTP Connector、JMS Connector等。
End-Point
Endpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何被使用。
Transformer
Transformer用于转换消息的内容。
Router
Router使用Filter基于消息中的属性信息进行消息的分发。Router在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。
Component
Component是Service的核心部件,是Service的业务逻辑的实现。Component可以是Java Class(POJO、Spring Bean)、Web Service、Script等。Component可定义自己的生命周期:initialise、start、stop、dispose,不过需要实现Mule的LifeCycle接口。Mule3.0版本开始提供@PostConstruct和@PreDestroy的注解,对应生命周期的initialise和dispose阶段,不需要实现Mule的LifeCycle接口了。
Flow
Flow是Mule 3.0新引入的,包含一个消息源(Message Source)和多个消息处理器组成的处理器链。