Mule学习之基本概念

以下整理了一些Mule的相关概念,摘抄自:https://blog.csdn.net/marktowhen/article/details/44623081

初步了解Mule,待继续学习和整理......

 

什么是Mule?

Mule是一个以Java为核心的轻量级的消息框架和整合平台。

以企业级服务总线这个企业集成模式开设计的Mule可以无缝的利用总多的技术像JMS、HTTP、Email、XML-RPC来处理应用之间的交互。 

Mule就是可以利用各种技术来对不同的应用之间进行连接,来达到应用之间交互的目的。
Mule对于应用或者组件之间的交互的管理是透明的,无论是否在同一台机器上,无论通信的协议是否相同。

Mule基于Enterprise Service Bus(ESB)架构思想。ESB的主要特性是通过扮演一个中转系统的角色,允许不同的应用系统交互,中转系统在内网或Internet上的应用系统间搬运数据。 

应用直接需要对于数据进行交换处理,但是应用之间的数据格式肯定是不可能一致的,那么就需要一个通道来进行数据格式的转换,我们把应用内部的数据结构叫做Data,把在通道中传输的数据叫做Message。 
应用之间的数据格式的转换以及传输这部分的工作都由Mule来完成,而应用只需要关心对业务逻辑的处理,至于数据的转换和传输都由Mule在底层完成。 当然Mule所能处理的要更复杂的多了,包括多通道的传输以及消息的过滤等等。

理解基本的消息结构以及flow体系是理解Mule的关键所在。

 

Mule Flow

本质上来讲,每一个Mule flow都包含一系列接收、传输和处理消息的构件(building block)。

在一个flow中,你将若干独立的组件连接在一起来完成消息的接收、处理以及最终的路由。Flow支持同步和异步的子flow,单向以及请求-响应交换模式,以及其它符合体系结构的选项。你可以将很多flow连接在一起来创建一个完整的应用,部署在Mule或其它应用服务器,或者云端。

可以通过两种方法构建一个Muleflow:
1. 直接向一个基于XML的应用配置文件中敲入几行代码
2. 使用Mule Studio的图形接口将组件图标整理为可视化的序列

最简单地说,flow是消息处理事件的序列。进入flow中的一条消息可能会流经各种各样的处理器。
Mule通过一个请求-响应入站端点(request-response inbound endpoint)来接收消息,将内容转换成一种新的格式,并在通过消息源返回响应之前,进行业务逻辑处理。

这些构成了flow的基本单元通常被称为构件(在Mule Studio中)或者元素(在单击或Studio的XML配置中)。总的来说,一个构件在Mule Studio中对应一个icon图标——图标则表示一个消息源、处理器或者组件。构件是Mule应用配置文件中一个XML元素的可视化表现形式。

大多数flow中的第一个构件是一个接收器,负责接收新消息并将其放入处理队列。

Mule转换器(transformer)是节点间数据交换的关键,它们允许Mule将消息负载数据(payloaddata)转换为其它应用可以理解的格式。Mule还能够进行消息内容的强化,允许你在处理过程中接收额外的数据附加到消息中。

Mule使用组件(component)来针对特定的业务逻辑(如检查客户与清单数据库)进行末端处理。所以,组件将消息路由给正确的应用(例如一个订单执行系统)。
Mule使用一种被称为阶段性事件驱动架构(Staged Event-Driven Architecture,SEDA)的架构进行flow中的异步消息处理这一核心功能。
组件不需要使用任何特定的与Mule相关的代码;它们可以是简单的POJO、Spring的bean,Java bean,Groovy脚本或者包含了处理数据的业务逻辑web service。组件甚至可以是其它语言开发的,例如Python、JavaScript、Ruby和PHP。Mule构件的种类包括了当前最常用的企业集成模式。

Flow还可以包含过滤器、作用域、flow控制、错误处理策略,以及诸多种类的云连接器。


Mule消息

Mule消息是通过一个或多个flow流经你的应用的数据。它包含两个重要部分:
消息头,包含消息的元数据。
消息负载( payload),由你的业务特定的数据组成。

元数据包括属性和变量,提供了关于这条消息的有用信息,帮助其到达目的地。属性和变量使用统一的格式:每一个属性和变量都具有一个name和一个value。
属性具有两个主要的域:入站和出站。

变量是用户定义的关于消息的元数据。变量具有两个作用域:
1. Flow变量只在当前flow存在。
2. Session变量在同一应用的所有flow中都有效。


Mule表达式语言( Mule Expression Language,MEL)

待学习

 

MuleESB在项目中的四种常用模式

1、简单服务模式
简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。

2、桥接模式
桥接模式用于在inbound endpoint和outbound endpoint之间建立直接连接,不需要component提供业务逻辑

3、校验器模式
校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果。通过校验的服务请求被异步分发给处理方。

4、服务代理模式
Web服务代理模式用于将Web Service请求直接转发至远程目标Web Service服务端,Mule本身不提供实际的Web Service。


 

你可能感兴趣的:(学习笔记)