Mule 2.x Getting Started Guide第二部分Mule使用之配置Mule

配置Mule

配置概述

1. 配置文件

 

默认的,并且最常的Mule配置方式是通过XML文件。

使用命令行启动Mule

在命令行启动时配置文件由参数-config指定。

编程的方式启动Mule

编程启动Mule时,配置文件作为ConfigurationBuilder的参数提供。

 

2. Configuration Builders

3. 指定使用哪一个Configuration Builder

XML配置

正如上一节配置概述中介绍的,最常用的Mule配置方式是通过Spring XML配置文件完成,这些配置文件是要使用默认的Mule名字空间。

XML 语法

配置文件基于XML语法(schema),在文件的最初指定。

必须要指定所有必须的语法文件,在创建配置文件时,这可能会比较耗时,但是导入语法提供了多种省时的好处:

在你使用的IDE中支持自动完成和详细的上下文帮助;

设计阶段的配置检查

Typed properties

 

名字空间

每一个Mule模块或者传输组件有它自己的XML语法。当你导入一个语法文件时,它有它自己的名字空间。例如,下面的配置中就将mule-jms.xsd绑定到了jms名字空间。因此,所有以<jms: 起始的xml元素都要遵循mule-jms.xsd语法。

 

默认名字空间

通常下,会将Mule core语法设置为默认的名字空间。也就是说所有没有前缀的xml元素都遵循Mule core语法(mule.xsd),设置默认名字空间语法的方法是,将Mule语法的URL指定给xmlns,去掉前面例子中的冒号和前缀,也就是使用xmlns替换掉xmlns:jms

 

Spring

尽管你的配置文件中出现了Mule相关的东西,但他们的确仅仅是附带了Mule相关扩展的Spring配置文件。这种方法可以让你在Mule配置中使用所有Spring提供的东西,比如beans,factory beans,resources loaders,EJBs,JNDI,AOP,甚至集成其他像Hivemind,jBPM,Gigaspaces,JBoss Rules等等此类软件。

使用标准的Spring元素,需要导入Spring名字空间:

 

属性占位符

你可以使用ant风格的属性占位符,例如:

 

正如这一节中描述的,这些占位符的值可以有很多种方法赋予

全局变量

你可以使用<global-property>元素来从Mule配置的内部设置一个占位符的值,比如在另一个Mule配置文件中:

 

属性文件

可以从文件中加载属性,你可以使用标准的Spring元素完成:<context:property-placeholder>

 

这里的smtp.properties文件的内容如下:

 

使用逗号来分隔需要加载的多个属性文件:

 

系统属性

占位符的值可以来自JDK系统,如果你从命令行启动Mule,你可以以如下方式指定这些属性:

 

或者在conf/wrapper.conf文件中编辑系统属性。

如果你使用编程的方式启动Mule,你可以用如下的方式指定属性:

 

环境变量

对于访问环境变量,没有标准的方式。这个里你可能会找到有用的信息。

配置一个Mule实例

基本配置

Mule配置文件可以表示成一个元素的描述树,不管什么形式的配置,最上层总包括以下的基本元素。

连接器(connectors):所有的传输组件都没有默认的配置;

端点(endpoints);提倡对端点进行全局定义,这样可以清楚地描述你的集成通道在什么位置;

转换器(transformers):可能需要全局定义,然后在你的服务中进行引用;

过滤器(Filters):同转换器。

模型(Models);一个或多个模型,从逻辑上组成了你的服务。

 

 

 

 

高级配置

另外,你可能还需要某些高级的配置:

代理(Agents):代理通常用于提供一些横向的服务,比如日志和管理;

通知(Notifications):在有生命周期的事件上,通知某些事件;

安全管理(Security Manager);

传输组件管理(Transaction Manager) ;

全局配置选项(Global Configuration Options):不同种类的全局设置;

全局属性(Global Properties):占位符的值。

 

配置选项

Mule上下文和Mule配置

所有的Mule配置都可以被一个对象:org.mule.api.config.MuleConfiguration访问。MuleConfiguration中的配置属性在Mule上下文(MuleContext)被创建时设置。在Mule启动后,这一对象是不可改变的,但它可以用如下方式进行访问:

 

配置变量

Mule配置变量可以用<configuration>标签进行配置。例如:

 

所有可用的变量如下表所示:

变量

类型

默认值

描述

defaultSynchronousEndpoint

属性

False

如果是true,对端点的连接就会持续等到响应。

defaultRemoteSync

属性

False

如果是true,对端点的连接就会持续等到远程服务的响应。

defaultSynchronousEventTimeout

属性

3000

等待一个同步响应的默认时间(ms)

defaultTransactionTimeout

属性

5000

事务默认的超时时间,没有指定时的默认值

Default-threading-profile

元素

默认的处理描述。在没有更详细的配置情况下,组件和端点用它来进行转发和接收。它可以被以下的三个覆盖。

Default-dispatcher-threading-

Profile

元素

默认的发送处理描述。

Default-receiver-threading-

Profile

元素

默认的接收处理描述。

Default-component-threading-

Profile

元素

默认的组件处理描述。

 

Q&A

怎样配置sercerId?

在2.0中,一些系统属性在启动后是不可改变的,比如serverId。serverId不再被配置在xml配置文件中,你需要用启动参数-DMule.serverId=YOUR_MULE_SERVER_ID指定系统属性或者编程的方式下调用 org.mule.config.DefaultMuleConfiguratioin.setId()。

 

我如何为管理代理设置serverUrl?

在1.x中,在<mule-enviroment-properties>中指定一个serverUrl属性来启动管理代理。在2.x中,可以使用<remote-dispatcher-agent>来替代。详细参照org.mule.module.client.

Remoting.RemoteDispatcherAgent

例如:

 

默认的队列描述,处理描述以及池化描述在哪里?

队列描述和处理描述配置在模型中,池化描述配置在池组件中。

配置端点

内容略

使用转换器

内容略

posted @ 2011-03-23 22:23  六不朽  阅读(1163)  评论(0编辑  收藏  举报