Mule ESB中有一些基本的概念,理解这些基本概念后才能理解Mule的内部机制。从中也可以看到Mule解决问题的基本思路。

一、Mule ESB Application Structure - Mule ESB应用程序结构

我们来看一个基于Maven项目,使用典型的archetype构建的应用程序的目录结构,可以看到一般分成src/main/java,src/main/resources,src/test/java,src/test/resources等目录。每个目录的作用Java程序员都很清楚。

我们再来看看Mule ESB Application的结构是什么。从图示可以发现,Mule的应用程序和Java应用程序几乎一致,其中有几个新目录着重介绍一下。

src/main/app

这个目录就是放置Mule的配置文件,也就是Mule Configuration File。打开Mule Configuration File就会开启设计器界面。

src/main/api

这个目录是放置Restful API的定义文件。

src/main/wsdl

这个目录是放置SOAP Webservice的WSDL文件。

二、 Mule ESB Application整体构造

总结起来,Mule的应用程序就是由一个或者多个Mule Configuration File组成,每个Mule Configuration File里面可以放置一个或者多个Flow。每一个FLow又是由Connector和Processor等组成。

而Flow是Mule的核心概念,下图展示了Flow的结构。

4. Mule ESB构造元素 - Flow

Mule ESB的应用程序通常是设计用来接收和处理消息。接收消息我们通常使用Connector Source来做,而处理消息通常使用一个或者多个Processor来做。Flow就是用来组织Connector和Processor的组。在一个Flow中,你可以将多个单独的Mule元素链接起来,用来实现接收,处理,过滤,路由消息等功能。

Flow实际就是上图的边框。实际还有Sub Flow的概念,主要用于Flow的公用,这些不展开讲述。

5. Mule ESB构造元素 - Connector

Mule的Connector是其非常优秀的功能,数百个开箱即用Connector可以帮助开发者连接不同的应用。从常见的HTTP,TCP,FTP,LDAP等协议,Hadoop大数据,到大型的商用系统SAP,Oracle,Salesforce,Mule都提供了相应的Connector。

Connector又分成Source Connector(又称为Inbound Connector)和Target Connector(又称为Outbound Connector)。

Source Connector用来接收消息,可以理解成监听器,而Target Connector是用来发送消息的组件。

6. Mule ESB构造元素 - Processor

Mule的Processor包含的内容更广泛,从Studio右侧的工具箱可以看到很多的控件元素,除去上文讲述的Connector,余下的基本都可以归纳到Processor。

Processor大概可以分成几类。

Transformers

可以称作转换器,用来转换消息的类型,结构和内容,比如将XML换成JSON。

Components

组件,可以使用Java或者脚本语言组件,比如JavaScript等。这些组件使用程序语言来描述商业逻辑。

Flow Control

控制消息的流向,比如消息的路由,消息的分割聚合等。

Scopes

通过Scope,我们可以改变内部Processor的行为特征。

Filters

过滤消息,我们可以定义规则过滤非法的消息。

下图总结了本文所讲述的内容,该Flow包含了上述所说的几类Processor。

本文已经讲述了Mule的基本概念,包括Mule ESB Application,Flow,Connector,Processor等。贯穿其中的就是消息,也就是Mule Message。Mule Message是Mule开发中非常重要的概念。

Mule学习(二、mule的一些概念)相关推荐

  1. Hudi学习二:Hudi基本概念

    文章目录 1.时间轴 (Timeline) 2.文件的布局 (File Layout) 2.1 文件的存储方式 2.2 文件的管理 3.索引 (Index) 3.1 索引选项 3.2 全局索引与非全局 ...

  2. Direct3D11学习:(二)基本绘图概念和基本类型

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 在正式开始学习D3D11之前,我们必需首先学习必要的基础知识. 在这篇文章中,我们将介绍一下Direct3D中常 ...

  3. Mule学习(四、Mule message structure - Mule message结构)

    1. 探索Mule Message结构 很多开发者在开始使用Mule开发,很大原因是因为Mule的图形化开发环境非常友好,同时Mule Esb Transport也非常多,但对Mule最重要的Mule ...

  4. (鸟哥教材)Linux学习日记(二:Linux背景概念)

    文章目录 一.Linux背景概念 1.什么是Linux 2.什么是UNIX 3.什么是BSD 4.什么是MIinix 5.什么是GNU计划 6.什么是POSIX 7.什么是386计算机 8.LInux ...

  5. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  6. 架构漫谈(二):认识概念是理解架构的基础

    原文:架构漫谈(二):认识概念是理解架构的基础 架 构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构.怎样做好架构.软件架构如何落地.如 何 ...

  7. TF学习——Tensorflow框架之基础概念、设计思路、常用方法之详细攻略

    TF学习--tensorflow框架之基础概念.设计思路.常用方法之详细攻略 目录 Tensorflow框架基础概念 Tensorflow框架设计思路 Tensorflow框架常用方法 Tensorf ...

  8. PyTorch框架学习二十——模型微调(Finetune)

    PyTorch框架学习二十--模型微调(Finetune) 一.Transfer Learning:迁移学习 二.Model Finetune:模型的迁移学习 三.看个例子:用ResNet18预训练模 ...

  9. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

最新文章

  1. Python:tkinter滚动抽奖器
  2. [C++调试笔记]初始化3种粒子数据initmaxw
  3. [leetcode] 108.有序数组转换为二叉搜索树
  4. ENode 2.8 最新架构图简介
  5. jboss性能指标_JBoss BRMS复杂事件处理(CEP)性能基准
  6. 一步步编写操作系统80 扩展内联汇编1
  7. php项目index页面空白,如何解决vue项目打包后打开页面空白的问题
  8. java不同类间调用数组_请问:JAVA中两个类中的方法都需要调用另一个类的数组进行对数组的初始化和调用。...
  9. Recover刷机简介
  10. PHP中使用CURL实现Get和Post请求方法
  11. js数据类型 方法 函数
  12. 【Shell】for循环
  13. android scalex中心,androidmatrix android怎么算matrix中心点
  14. cmd命令打开文本文档_Windows常用cmd命令总结
  15. Netty in Action 中文版 --最贴近原著的翻译
  16. NULL,0,`0`,`\0`,0你分得清吗?
  17. java socket 域名解析_在java中,使用域名进行socket通讯
  18. 转:分分钟用上C#中的委托和事件
  19. 算法基础知识总结(搜索与图论)
  20. springboot启动报错

热门文章

  1. Photoshop CC 2017 安装与激活(Mac 版)(仅供学习研究,勿作商业用途)
  2. ffmpeg常用编解码命令
  3. ssm+JSP计算机毕业设计中医养生客户管理系统c3z16【源码、程序、数据库、部署】
  4. Python四个整数排序
  5. 计算机类电子实践总结-1
  6. 直播间如何打造爆款你学会了吗?
  7. linux下搭建NFS实现文件共享
  8. andorid 介绍和 环境搭建
  9. FLUX WMS 自定义面单打印
  10. buuctf(入门) Have Fun