`

转 开源消息框架Mule配置基础

    博客分类:
  • mule
阅读更多

Mule是开源的企业集成消息框架,,它的配置需要使用大量的XML文件,本文就对这些配置文件进行介绍,首先还是普及一下Mule基础常识。

  什么是Mule?

  Mule是一个透明的,基于Java的消息框架,它允许不同的应用程序连接,从而摆脱应用程序之间直接相互调用的情况,Mule支持多线程/消息模式(默认是阶段式事件驱动架构,SEDA),输入和输出到不同的传送器(email,文件,数据库等),以及通过协议如SOAP 发送到Web Service,如图1所示。

  

图- 1 Mule支持多种协议

  Mule没有要求要一个统一的消息格式,它允许在与不同服务相互操作时指定转换,Mule企业版支持多个商业消息系统,包括TIBCO Rendezvous和IBM WebSphere MQ。

  它的架构采用了三层:应用层,集成层和传输层。Mule实现了企业服务总线(ESB),并为面向服务的架构(SOA)提供了一个平台。分层的方法提升了可复用性,如图2所示。

 

 图- 2 分层的方法提升了可复用性
点此发表你的看法>>【已有位网友发表了看法】

  安装Mule

  Mulesource.org网站上提供了两个Mule版本:

  1、企业版(需购买许可,有商业化支持,可从http://www.mulesource.com/download/ee/下载试用版);

  2、社区版(功能少一点,但是免费的)。

  对于Mule 2.x版本,需要安装JDK 1.5(http://java.sun.com/javase/downloads/index_jdk5.jsp)和Ant 1.7.1(http://ant.apache.org/bindownload.cgi)或Maven 2.0.9(http://maven.apache.org/download.html)。

  Mule使用入门指南在http://www.mulesource.org/display/MULE2INTRO/Offline+Documentation,如果开放工具使用的是Eclipse,最简单的办法是将classpath设置包括./lib/mule和./lib/opt目录下的所有.jar文件。
点此发表你的看法>>【已有位网友发表了看法】

  运行Mule

  Mule可以嵌入到Java应用程序、应用程序服务器或Web应用程序中,要运行Mule,你必须指定一个配置文件,这个配置文件描述了Mule的各项配置参数,有多种方法启动Mule:

  1、在命令提示符后
mule [-config ]

  2、从一个脚本
org.mule.MuleServer -config mule-config.xml
//创建一个新的服务器,使用两个配置文件
MuleServer server = new MuleServer("mule-config1.xml,mule-config2.xml");
//启动服务器,布尔参数值确定了服务器是在一个新线程中启动还是就在当前的线程中启动
server.start(true);

  3、通过指定配置生成器的全限定类名,如果不指定,Mule就使用默认值org.mule.config.builders.AutoConfigurationBuilder:
  3、通过指定配置生成器的全限定类名,如果不指定,Mule就使用默认值org.mule.config.builders.AutoConfigurationBuilder:

  4、通过分配一个具体的服务器ID与Mule环境交互:
AutoConfigurationBuilder configbuilder = new AutoConfigurationBuilder("C:/MuleConfDir/mule-config.xml");
DefaultMuleConfiguration muleConfig = new DefaultMuleConfiguration();
muleConfig.setId("MY_SERVER_ID_1");
MuleContextBuilder contextBuilder = new DefaultMuleContextBuilder();
contextBuilder.setMuleConfiguration(muleConfig);
MuleContext muleContext = new DefaultMuleContextFactory().createMuleContext(configbuilder, contextBuilder);
muleContext.start();
点此发表你的看法>>【已有位网友发表了看法】

  Mule组件

  本节定义组成Mule消息框架的不同组件,并介绍如何用XML来配置这些组件,这里的讨论针对的是Mule 2.x版本。

  服务组件

  服务是Mule用于实施集成解决方案的主要元素,一个服务组件是一段实现了某些业务功能的代码,如图3所示。Mule的一个主要优点是服务组件可以是简单的没有预先存在外部接口的POJO(Plain Old Java Objects,简单Java对象),在Mule 1.x等早期版本中,服务组件被称为通用消息对象(universal message objects,UMO)。

  

图- 3 服务组件

  Mule为任何服务器组件提供了可插拔的连接性,使用特定的Mule配置设置,定义服务的特定行为,把外部消息转换成服务组件函数的调用,并控制它的生命周期,配置这个转换的是一个XML文件(默认是mule-config.xml),这个文件指定了消息流,应该指向服务组件。

  Mule消息

  Mule中的消息完全是一个数据包,它可以在一个特定通道上或端点上应用程序之间发送,一个消息也相当于一个由外部事件触发的事件,如收到队列中的数据或一个文件被拷贝到某个目录中,你可以使用Mule客户端编程产生Mule消息。

  服务端点

  端点的功能相当于网关,或者说是连接服务组件到外部消息的通道,它可以位于本地也可以位于网络上,如图4所示,Mule可以被配置为在端点上拦截消息,如果需要,然后将消息进行转换,转换后再传递给服务组件。

  

图- 4 入站(Inbound)和出站(Outbound)端点

  服务可以使用不同的传输器来接收和发送消息,对服务将要使用的每种传输器,你可以使用一个独立的端点。

  消息路由

  消息路由控制组件如何接收消息,以及在处理后应该发送到何处去,入站路由控制服务如何处理入站消息(如,有选择地允许那些符合特定标准的消息),出站路由控制服务处理完消息后该将其发往何处(如,将其发送到接收者的列表,或将消息拆分,然后发送到不同的端点),如图5所示。

  

图- 5 入站和出站路由

  路由是和过滤器结合工作的,过滤器指定限制条件,只有符合条件的消息才能被路由到服务,并包括一个表达式从当前消息中提取信息。

  传输器和连接器

  传输器实质上就是数据运输工具,它使用特定的协议在应用程序之间运输消息,如图6所示。Mule支持多个标准的传输器(JMS,HTTP等),并可以通过扩展org.mule.transport.AbstractConnector创建自定义传输器。

  

图- 6 Mule提供的传输器

  连接器表示特定传输器的配置,例如,JMS使用一个队列或一个主题来接收或发送数据,HTTP连接器使用一个端口来交换数据,具体的队列,主题和端口在连接器内部指定,连接器可以全局指定(为整个Mule应用程序)或在服务级本地指定。

  转换器

  数据转换是一种让迥然不同的组件之间可以相互理解对方的消息的技术,消息经历转换弥补了两个组件的数据表现之间的差异,Mule翻译器(也叫做转换器)是Java类,如图7所示。

 [img]http://image4.it168.com/2009/7/22/01a31b8f-1c22-4c5e-977e-690fc0eda2e6.jpg
[/img]
 图- 7 转换器翻译消息

  转换的例子包括从一种XML消息转换成另一种XML格式,或将XML消息转换成Java对象,转换器用于将转换接收到的数据,然后以特定协议发送出去,如JMS传输器使用的ObjectToJMSMessage转换器。

  Mule配置了大量的转换器,并允许你通过扩展AbstractTransformer创建专用的转换器。

  服务可能被限制到本地网络或只能使用本地或私有的传输器,私有传输器不被外部应用程序支持,通过提供一个能够通过转换器转换和通过端点访问服务组件的消息框架,Mule为常见的intranet/Internet消息交换提供了一个组件服务。

  使用Mule客户端

  Mule客户端是一个为Java客户端从Mule服务器或其它应用程序接收或发送消息的简易接口,一般说来,消息是由外部事件触发的,如队列上接收到一个消息,或一个文件被拷贝到某个目录下。

  通过在单元测试或负载测试中引入消息,Mule客户端可以帮助测试消息流,如果你在相同的类加载器中使用Mule客户端(如一个Web应用程序或单独的Mule),客户端将会访问服务器配置,例如,如果在你的服务器配置文件中定义了以下端点:

<http:endpoint host="192.168.0.1" port="80" path="/services" name="serviceEndpoint"/>

  那么这个端点就可以被Mule客户端访问:

MuleClient client = new MuleClient();
client.dispatch("serviceEndpoint", dataObject, null);

  如果你以独立模式运行Mule客户端,你要使用它自己的Mule XML文件进行配置:
MuleClient client = new MuleClient();
client.dispatch("serviceEndpoint", dataObject, null);

分享到:
评论

相关推荐

    ESB开源系统mule

    开源ESB框架 Mule 2增加了基于Schema的spring xml配置,用于集成传统的web应用。表达式赋值被内建在运行时的消息传递中,因此头信息,Xquery或是其他的测试可以很容易的完成,不需要新建POJO或是这些活动转换器。

    ESB-Mule开源文档(PDF)

    ### ESB-Mule开源文档知识点概述 #### 一、引言 Mule 是一款非常流行的集成平台,由 MuleSoft 开发,它提供了一个企业级的服务总线 (Enterprise Service Bus, ESB) 和一个用于构建服务导向架构 (Service-Oriented ...

    mule -esb 源码

    通常,Mule ESB使用log4j或Logback作为日志框架,`log4j.properties`文件即为该框架的配置文件,它允许我们定制日志级别、输出目的地和格式。 `openejb.conf`和`openejb.properties`涉及到OpenEJB,这是一个开源的...

    mule 详细介绍 (soa esb)

    Mule ESB,即Mule企业服务总线,是一种基于Java的开源集成框架,它允许开发者通过简单的配置来实现不同应用程序之间的通信与数据交换。SOA(Service Oriented Architecture),即面向服务的架构,是一种设计复杂应用...

    Mule in action下载(英文版)

    《Mule in Action》一书深入探讨了Mule——一个轻量级消息框架与高度分布式的对象代理系统,为读者提供了全面的理论与实践指导。本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置...

    mule-2.1.1-getting-started

    - **消息传递框架**:Mule提供了一个高度灵活的消息传递模型,支持各种消息模式,如请求/响应、发布/订阅等,同时提供了丰富的消息处理器来处理数据转换、验证等工作。 ### 使用Mule的关键步骤 - **安装Mule**:在...

    Mule框架研究(1)

    Mule作为一个开源项目,它的源码对开发者开放,允许我们深入理解其内部机制。源码分析有助于我们更好地定制和优化Mule应用,解决在开发过程中遇到的问题。通过阅读和学习源码,我们可以了解到Mule如何处理消息传递、...

    简单的tomcat中集成mule

    当你启动Tomcat时,它会加载`web.xml`中指定的Mule配置,并运行在Tomcat环境下。这样,你可以利用Mule的ESB功能,如数据转换、路由、异常处理等,同时利用Tomcat的轻量级部署和管理优势。 集成Mule ESB到Tomcat是...

    MuleESB3.0中文教程

    - **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise Integration Patterns)原则构建,支持多种传输协议(如file, FTP, ...

    Mule V.S ServiceMix

    Mule是一个基于服务容器和消息端点配置的系统,它提供了一种灵活的集成方式,允许开发者构建和管理复杂的服务网络。尽管Mule并不依赖Java Business Integration (JBI)标准,但它通过JBI绑定支持与JBI容器(如...

    mule ce xmemcached

    4. **Spring Bean**: Spring框架的核心概念之一,它是Spring容器管理的对象,可以用来配置、组装和管理应用程序的组件。在这里,Spring Bean将被用来配置和管理与XMemcached的交互。 5. **XMemcached**: XMemcached...

    Mule_ActiveMQ

    Mule ActiveMQ 是一个基于 Java 的开源消息中间件,它在 Mule ESB(企业服务总线)框架中扮演着关键角色,为分布式系统提供高效、可靠的异步通信。Mule ESB 是一个强大的集成平台,而 ActiveMQ 是其内置的消息代理,...

    muleide-2.1.1

    Mule ESB,全称Mule Enterprise Service Bus,是一款强大的开源企业服务总线(ESB)软件。它主要用于实现不同应用之间的通信和数据交换,通过提供消息路由和转发服务,帮助构建松散耦合、模块化的系统。Mule ESB的...

    mule in action 第二版英文正式版

    《Mule in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D’Emic 和 Victor Romero三位作者共同编写,并由Manning Publications出版。Mule ...

    esb-mule系统设计

    MULE是一个开源的企业服务总线,由Mulesoft公司开发。MULE以其轻量级、高性能和易于使用的特点,在ESB领域中颇受欢迎。MULE ESB支持多种协议和标准,如HTTP、JMS、FTP、SMTP等,还提供了丰富的连接器来连接各种企业...

    mule2的源代码包

    1. `logging.conf`:这是配置Mule2的日志系统的关键文件,通常使用的是Log4j或SLF4J框架。它定义了日志级别、输出目的地和格式,帮助开发者监控应用运行时的行为和调试问题。 2. `openejb.conf`:OpenEJB是Apache...

    mule集成mq

    2. **配置JMS连接工厂**:在Mule配置文件中,定义JMS连接工厂。这包括设置MQ服务器的主机名、端口、队列管理器名、通道、认证信息等。 3. **创建JMS连接**:使用配置好的连接工厂,Mule可以在运行时建立到MQ服务器...

    实战Mule:利用Mule调用XFire发布的Web服务

    Mule ESB是一款强大的开源ESB(Enterprise Service Bus),它提供了灵活、可扩展的架构来连接和集成各种应用程序、服务和数据源。Mule的核心功能包括消息传递、协议转换、数据格式转换、路由和事件驱动处理,使得...

    MuleStudio用户手册.doc

    - **核心特点**:Mule 是一款以 Java 为核心的基础框架及整合平台,它支持超过30种传输协议,如 FTP、HTTP、SOAP 等,并且能够与 Spring、ActiveMQ 等流行开源项目进行无缝集成。 - **设计理念**:Mule 的设计基于...

Global site tag (gtag.js) - Google Analytics