Mule ESB基本介绍

Mule ESB是世界上使用最广泛的开源企业服务总线(ESB)产品,已拥有超过数百万的下载量,以及来自世界各地数十万个开发人员,很多世界五百强企业选择Mule ESB作为企业集成平台。通过Mule,企业可以在短时间内轻松地创建并集成应用服务,Mule ESB消除了系统集成的复杂度,使开发人员能够在异构系统和服务之间,轻松地构建出高性能的集成应用。


和传统的ESB不一样,Mule ESB是一个轻量级的ESB,内核基于SEDA模型和Spring框架构建。基于Spring,意味有着非常灵活的扩展性。同时Mule ESB不仅仅是一个ESB,它也是流行的微服务体系中的一部分。这个系列我们着重介绍它的ESB功能,后续我们再着重介绍它的API管理等功能。

Mule ESB社区版和企业版

和很多开源软件一样,Mule ESB分成两个版本,社区版和企业版。其中社区版是免费使用的。而企业版则需要付费订阅使用,功能更强大。如果企业预算充足,则可以选择企业版。或者使用Mule ESB社区版,在社区版基础上做扩展,在有技术支持的情况下,同样可以收到良好的效果。

关于社区版和企业版的主要区别,可以参照下表。如何选择可以参考具体的业务场景和企业情况。Anyway,由于Mule ESB是开源的,我们在社区版上可以有很多的灵活扩展。

Mule ESB常用场景

我们来说一下Mule ESB的常见应用场景,可以更好的理解Mule ESB到底可以帮助我们解决什么问题。

旧系统改造,开放系统的服务能力。举个例子,我们有一个电商系统,需要调用SAP ERP的订单接口来创建订单。这个时候就需要将SAP的订单服务暴露成我们流行的Rest Service接口,以方便电商系统调用。当然电商系统可以直接使用SAP的JCO包来调用SAP的BAPI Function,但显然暴露一个通用的Rest Service更易于调用。使用Mule ESB实现如下:


系统集成。举个例子,很多系统之间数据交互可能还是用FTP目录。尤其是企业跟企业之间的数据交互,比如,A企业丢一个EDI 文件到B企业的FTP目录,然后B企业会从FTP目录下载解析并放置到数据库。这个场景用Mule ESB实现就很方便。

ETL。市面上有很多开源的ETL软件,其实Mule ESB也有ETL的功能,通过Flow设定ETL的数据转换和数据流向。下图就演示了Mule的ETL和数据分发功能。

Mule ESB软件安装

用一个相对宽泛的标准来划分,Mule ESB软件可以分成两部分。

一部分是客户端,也就是基于Eclipse的Anypoint Studio,客户端就是用来开发集成应用的,通常面向的用户就是我们的开发人员。由于是基于Eclipse环境,所以Java开发人员会很熟悉,同时Anypoint Studio也可以集成Git,SVN,Maven,Junit,Jenkins等一系列生态工具。

当然作为其他语言的开发人员也不用担心,Anypoint Studio是一个可视化的拖拽的开发环境,大部分的工作只需要使用鼠标拖拽组件,配置属性即可。

还要一部分是服务端,也就是Mule Runtime,也可以称作Container,容器,注意不要跟Docker的概念混淆。这里的Container指的是Java Container,你可以大概想象成Tomcat类似的东西。客户端开发的应用就部署运行在Mule Runtime中。

需要注意的是,Mule Runtime是一个独立的Container,只依赖JDK,并不依赖其他第三方的容器。服务器中只需要安装JDK和Mule Runtime,即可运行Mule应用。还有一种不太常见的做法,就是把Mule App跑在第三方的容器里(比如Tomcat等),通过对容器的扩展来支持Mule App。不过我们不推荐这种做法,还是推荐使用独立的Mule Runtime,也就是官方说的Standalone版本。

客户端安装

Anypoint Studio是基于Eclipse构建的,你可以在这里下载到(Windows 64Bit,Mac 64Bit)。请根据你的客户端的操作系统选择对应的版本。我们只要在Windows或者Mac电脑上安装好JDK8之后,解压缩Zip包,双击即可打开。打开的界面如下:

由于Anypoint Studio默认只内嵌了Mule ESB企业版运行时,如果你想使用社区版的话,我们还需要安装Mule ESB社区版运行时。为什么客户端也需要Runtime?这很容易理解,我们开发调试都需要使用Runtime,难道你编写代码后,不运行和调试吗-?

安装社区版运行时,可以使用下列步骤。

点击Help/Install New Software…菜单

在Work with下拉框中选择Mule Runtimes for Anypoint Studio

选中Mule ESB Server Runtime 3.9.0 CE,CE就是Community Edition,社区版的意思。然后点击Next一直到完成。

客户端安装

服务端不区分操作系统,你可以从这里下载到3.9.0版本的社区版Runtime。Mule ESB Runtime可以运行在Windows,Linux,Mac等操作系统上,我们推荐在生产环境使用Linux部署Mule ESB Runtime。服务端的安装也很简单,只要在服务器上安装好JDK8之后,解压缩Runtime即可

第一个Mule ESB应用- Hello world

我们学习新的语言和框架都会使用经典的Hello world程序,这里也不例外。我们要做的就是,使用Mule ESB建立一个HTTP服务,当用户访问HTTP端口后,返回Hello world。开发步骤很简单:

点击File/New/Mule Project,新建Mule工程,这里选择使用CE版,也就是社区版,然后一步步Next直到完成。

拖入HTTP组件到空白的画布中。

选择画布上的Http组件,在属性页面新增Connector Configuration,在弹出窗口设定侦听的端口,注意不要和你本机的端口冲突。

拖入Set Payload组件,在属性页面,设定Value值,Hello word。

在工程项目上右击弹出菜单,Run As/Mule Application。稍等片刻,Console窗口会出现"Mule is up and kicking",表示Mule已经开始工作了!

使用Postman访问HTTP端口,返回Hello world,Mule。

使用Mule ESB上手非常简单,我们后续会介绍更多的组件,比如你需要从数据库获取数据,那么就使用Database,还有更多组件等待挖掘。

部署Mule ESB应用

我们已经在客户端开发完成了Hello world,也顺利跑起来了。但是如何部署到服务端呢。和常见的Java开发一样,我们也需要打包应用。这里我们用的是普通工程,我们通过一个Export操作,即可导出Mule App(当然Mule App也支持Maven工程,可以通过Maven打包)。在工程项目上右击弹出菜单,Export…,然后在对话框中选择Anypoint Studio Project to Mule Deployable Archive。注意这里不要选中Attach project sources。

将导出的Zip包放入到Mule Runtime的apps目录下,然后启动Mule Runtime。如果是Linux或者mac,那么在Mule Runtime的bin目录下执行./mule启动命令。如果是Windows,双击执行bin目录mule.bat即可启动。

然后使用Postman访问服务器,你会得到和Studio一样的效果

本文同步发文于EnjoyingSoft Blogs ,博客园 ,简书

Mule ESB基本介绍相关推荐

  1. MULE ESB功能介绍

    Mule是一个企业服务总线(ESB)消息框架.它的主要特性包括: 1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker). 2.可插入的连接性:比如Jms,jdbc,tcp,udp, ...

  2. 关于MULE ESB相关的介绍

    1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换.Mule ESB支持集成现有系统而无论其底层采用何种技术,如J ...

  3. Mule ESB 介绍

    1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换.Mule ESB支持集成现有系统而无论其底层采用何种技术,如J ...

  4. Mule ESB 3.3与CloudHub

    MuleSoft最近发布了企业服务总线(ESB)产品Mule ESB 3.3.在新版本中,除了应用程序集成之外,Mule ESB还拥有了数据集成功能:从而为开发者提供了一个面向本地或云端应用的集成解决 ...

  5. EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换

    目录 1. 数据转换概念 2. 数据智能感知 - DataSense 3. 简单数据转换组件 3.1 Object to JSON 3.2 JSON to XML 3.3 JSON to Object ...

  6. 使用Mule ESB与Groovy编排RESTful服务【转】很适合我们当前的架构

    http://www.infoq.com/cn/articles/restful-services-mule 在过去几年中,REST风格的软件架构获得了越来越多的认可,这主要是因为它减少了系统对动件的 ...

  7. EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念

    目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application ...

  8. Mule ESB开发与学习

    今天依旧是公司让调研,嗯嗯,学无止境 还是上次的问题,由于公司用了IBM的IIB,价格比较昂贵,所以调研一个开源的ESB用于小项目来使用,既然是小项目,估计也就用不到高可用这种集群模式了,所以老板让我 ...

  9. MULE ESB中custom,flows,connectors等的使用方法

    1. how to work 当你去检查一个消息在mule esb当中 是如何流动的时候,你回发现整个架构中存在着三个层面:应用层,整合层,以及传输层.. 同样,在mule 开发中也有三种不同类型任务 ...

最新文章

  1. tensorflow笔记:多层CNN代码分析
  2. 2010-11季,关注波士顿凯尔特人的10个理由
  3. jq获取after和before伪类的content值
  4. 点云配准网络 PCRNet: Point Cloud Registration Network using PointNet Encoding 2019
  5. HDU 4652 Dice:期望dp(成环)【错位相减】
  6. linux shell后台运行
  7. linux系统结构,文件寻址,文件管理编辑,正则表达式
  8. dell r740如何做raid_戴尔入门级4K、IPS广色域显示器:S2721QS表现如何?
  9. python自动化办公:邮件篇 (定时邮件问候女票so easy)
  10. php防止报错,php报错:Cannot redeclare class 提示的解决方法
  11. Matplotlib - 折线图 plot() 所有用法详解
  12. php文件访问不到数据,PHP 5.x同步文件访问(无数据库)
  13. KubeEdge led部署
  14. TensorFlow的基本运算03
  15. 来自DFRobot的中文语音识别模块
  16. websocket 连接本地端口_Spring Boot 结合 WebSocket 实现在线聊天
  17. 437.路径总和III (力扣leetcode) 博主可答疑该问题
  18. cookie和session机制之间的区别与联系
  19. dmb: 数据库监控及灾备系统(for mysql)_一个备份MySQL数据库的简单Shell脚本
  20. LaTeX Beamer 制作PPT时给某一页添加背景图片(并设置透明度)

热门文章

  1. 富士康将向印度投资建厂 提供4000就业岗位
  2. 安装部署Yearning
  3. [luogu2469] 星际竞速
  4. 18030228邢若楠
  5. 进销存系统_用户角色分配(12)
  6. ios %.2f是四舍五入吗?
  7. centos系统中ping时出现Destination Host Prohibited
  8. 关于linux下ftok创建key的问题
  9. 解决编译错误:dereferencing pointer to incomplete type 的办法
  10. 屏幕分辨率与屏幕尺寸关系