本文介绍如何在 Linux 上部署 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等。
顺便过一下关于ESB(企业服务总线)的概念:
回头继续说说 Mule,Mule Studio是一个功能强大、用户界面友好的基于Eclipse的开发工具(
下载地址)。使用者不需要深入了解Mule的XML配置语法,就可以在几分钟内轻松的创建、编辑、测试Mule ESB流程。Mule Studio基于Eclipse技术,包含3个主要部件:项目结构树、工具箱和画布。项目结构树包含整个项目的目录结构。创建Mule项目后将看到Mule项目的名称和如下的文件和目录结构:
路径 | 描述 |
src/main/java | 存放自定义的Java类 |
src/main/resources | 存放流程图 |
src/test/resources | 存放自定义的Java测试类 |
Application | 存放Mule部署属性文件 |
Src | Main/app包含流程的xml文件;Main/test包含流程测试相关文件 |
mule-project.xml | 项目metadata文件。可以编辑里面的名字、描述和服务器运行时版本等信息 |
JRE System Library | Java runtime libraries. |
Mule Runtime | Mule runtime libraries. |
下图是Mule Studio中的项目结构树截图:
在 test.mflow 里就可以拖过拖拽进行服务流程的控制了。下图是一个简单的 http-inbound / http-outbound 示例。
该示例实际就是实现一个转发功能,Mule ESB 将通过 http://localhost:8090 暴露出内部服务 http://localhost:8080 中间做一个 XML Schema 的校验。查看原始XML配置如下:
<flow name="proxyFlow" doc:name="proxyFlow">
<http:inbound-endpoint address="http://localhost:8090" encoding="UTF-8" exchange-pattern="request-response" doc:name="HTTP" />
<echo-component doc:name="Echo"/>
<http:outbound-endpoint method="GET" doc:name="HTTP" encoding="UTF-8" address="http://localhost:8080#[header:INBOUND:http.request]" exchange-pattern="request-response"/>
</flow>
接下来看看如何部署 ESB(当然得先准备一个 Web 服务)
1. 导出 Mule 应用:在 MuleStudio 工程上右键 Export 保存一个 .zip 文件。
2. 在 Linux 中部署 Mule Manage Console (mmc)
首先确保 Linux 已安装了 Java 1.6,下载 MMC:
tar -xvzf mmc-distribution-mule-console-bundle-3.3.2.tar.gz 解压后在 /mule-enterprise-standalone-3.3.2/bin 目录下运行 mule 这就启动了 Mule mmc 了。接下来可以通过 Mule 的Web 页面进行进一步的部署。
3. 通过 Web 页面部署 Mule 应用(flow)
http://localhost:8585/mmc
添加前面生成的 zip 文件,进行发布。
4. 发布之后的监控
按照下图顺序可以对发布的 Mule 应用进行监控,比如服务的运行情况,还有 Request, Response 等信息。
下次将继续介绍 Mule flow 几种典型场景的配置。
作者:fangxinggood 发表于2013-4-12 0:16:28
原文链接