一步一步学Mule ESB——(第一篇:基础篇)

mule

它是一个以Java为核心的轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的。Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean 等等。它支持30多种传输协议(file,FTP,UDP,TCP,email,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如 Spring,ActiveMQ,CXF,Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器, 应此可以很好地与JBI容器整合在一起。而 Mule更关注其灵活性,高效性以及易开发性。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。目前许多 公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。Mule 3版本以后集成OSGi,支持热部署。

可见OSGI必将是将来的一大趋势,各大厂商,开源软件等都已经开始支持此规范。

下载和安装Mule ESB

我们到Mule的官方网站下载Mule ESB,网站是:

http://www.mulesoft.org/

Mule一共有两个版本,一个是社区版,一个是企业版,企业版是收费的,但是功能强大。

              图:Mule ESB社区版

              图:Mule ESB企业版

我们下载社区版。

然后解压、启动Mule Studio,选择工作空间:

                  图:Mule Studio启动并运行

基础示例

启动并且选择默认的工作空间后,就会出现如下界面:

              图:Mule Studio的欢迎界面

创建新工程:File > New > Mule Project

因为我们要做的示例是拼写检查,所以我们这里命名叫SpellChecker

          图:创建Mule工程

其它默认,下一步然后完成。

工程界面如下:

               图:Mule Studio工作界面

接下来我们为示例设置两个文件夹:

选择Studio Application Menu > File > Open File >

然后打开你的Mule Studio安装文件夹,Examples > Spell Checker

新增目录InXML和OutXML

      图:在目录中新加文件夹

下面看下典型的业务流程:

              图:业务流程图

web客户端发送Http请求然后到入口端点,经过Filter进行过滤错误的信息,然后转换成JMS的服务,经过Java的业务逻辑组件处理最后再转换成Http请求返回给客户端应用,就是这么样的一个流程。

下面我们就Mule Studio来画一下对应的应用,直接看完成后的效果:

        图:spell checker处理流程

双击第一个File,设置上边新建的输入文件夹:

        图:设置输入的文件夹

然后双击Http标签,设置如下:

              图:http设置

最后设置File的输出规则:

          图:File的输出规则及输出目录

保存文件,然后我们运行工程,工程上点右键,Run As > Mule Application

正常启动后应该能看到

            图:Mule启动运行spellchecker

            图:spellcheck文件的位置

将示例中spellcheck拷贝到InXML中,然后我们看Mule的控制台

              图:Mule控制台的信息

我们再看一下OutXML文件夹,多了一个生成后的文件

上面就是Mule的示例工程,看看Mule有多好用吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Java并发编程的艺术(十三)——锁优化

自旋锁 背景:互斥同步对性能最大的影响是阻塞,挂起和恢复线程都需要转入内核态中完成;并且通常情况下,共享数据的锁定状态只持续很短的一段时间,为了这很短的一段时...

39150
来自专栏大闲人柴毛毛

Java并发编程的艺术(十)——线程池(1)

线程池的作用 减少资源的开销 减少了每次创建线程、销毁线程的开销。 提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高...

35460
来自专栏程序员互动联盟

程序员必备的三大核心竞争力

任何职业都有其内在的底蕴,作为一个程序员需要具备的几个竞争力是啥,如何让自己做一个不过时并且一直保持市场竞争力的程序员,特别是一些入行还不是很长时间的程序员是要...

376130
来自专栏大闲人柴毛毛

Java并发编程的艺术(十一)——线程池(2)

Executor两级调度模型 ? 在HotSpot虚拟机中,Java中的线程将会被一一映射为操作系统的线程。 在Java虚拟机层面,用户将多个任务提...

39980
来自专栏大闲人柴毛毛

Java并发编程的艺术(十二)——线程安全

1. 什么是『线程安全』? 如果一个对象构造完成后,调用者无需额外的操作,就可以在多线程环境下随意地使用,并且不发生错误,那么这个对象就是线程安全的。 2. ...

39150
来自专栏程序源代码

java招聘面试

过完年了,好多学习JAVA的同学在忙着找工作,大家先预习下这些基础知识 ,说不定能面试的时候考到。 基础篇 1 什么是Java、Java2、JDK?JDK后面...

49650
来自专栏机器学习AI算法工程

工程师回帖:求助各位数据挖掘前辈~~

求助各位数据挖掘前辈~~ 还有几天就马上研一了,我学的是数据挖掘方向,具体方向应该是微博文本类,这段时间学的挺乱的,一直没有个方向的感觉。假期期间把老师推荐的...

36150
来自专栏程序员互动联盟

为什么那么多人觉得java过时了?

现在的java在编程界基础已经根深蒂固了,随之带来的影响就是有大量的岗位,大量的工作方向,虽然现在很多的新兴语言势头都非常的猛烈,但是这并不影响java依然体量...

38760
来自专栏AI科技评论

独家丨基于规则和检索的聊天机器人引擎

AI 科技评论按:本文作者王海良,呤呤英语开发总监,北京 JavaScript/Node.js 开发者社区的运营者,曾就职 IBM 创新中心。本文为系列文章第二...

49680
来自专栏程序员互动联盟

多年Java开发研究机器学习技术需要哪些基础?

多年的java开发经验切入到新的领域,需要熟悉的新规则和技巧。 但对于人工智能来说,不是简单的熟悉一下新的规则那么简单的事情了,主要人工智能是一个综合性极强,...

385120

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励