Mule ESB中有一些基本的概念,理解这些基本概念后才能理解Mule的内部机制。从中也可以看到Mule解决问题的基本思路。
4. 基本概念
4.1 Model
Model表示托管各个服务的运行时环境。
图 Model
4.2 Service
Service是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。
图 Service
4.3 Transport
Transport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。
图 Transport
4.3.1 Connector
Connector用于管控特定协议的使用,如HTTP Connector、JMS Connector等。
4.3.2 End-Point
Endpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。Endpoint控制的是底层的实体在Connector中如何被使用。
Endpoint定义于Inbound和Outbound Router中。
4.4 Transformer
Transformer用于转换消息的内容。
图 Transformer
4.5 Router
Router使用Filter基于消息中的属性信息进行消息的分发。
图 Router
Router在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。
4.6 Component
Component是Service的核心部件,是Service的业务逻辑的实现。
图 Component: implicit bridge component
Component可以是Java Class(POJO、Spring Bean)、Web Service、Script等。
Component可定义自己的生命周期:initialise、start、stop、dispose,不过需要实现Mule的LifeCycle接口。Mule 3.0版本开始提供@PostConstruct和@PreDestroy的注解,对应生命周期的initialise和dispose阶段,不需要实现Mule的LifeCycle接口了。
4.7 Flow(@since 3.0)
Flow是Mule 3.0新引入的,包含一个消息源(Message Source)和多个消息处理器组成的处理器链。
图 Flow