配置Mule
配置概述
1. 配置文件
默认的,并且最常的Mule配置方式是通过XML文件。
使用命令行启动Mule
在命令行启动时配置文件由参数-config指定。
编程的方式启动Mule
编程启动Mule时,配置文件作为ConfigurationBuilder的参数提供。
2. Configuration Builders
3. 指定使用哪一个Configuration Builder
XML配置
正如上一节配置概述中介绍的,最常用的Mule配置方式是通过Spring XML配置文件完成,这些配置文件是要使用默认的Mule名字空间。
XML 语法
配置文件基于XML语法(schema),在文件的最初指定。
必须要指定所有必须的语法文件,在创建配置文件时,这可能会比较耗时,但是导入语法提供了多种省时的好处:
l 在你使用的IDE中支持自动完成和详细的上下文帮助;
l 设计阶段的配置检查
l 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配置文件可以表示成一个元素的描述树,不管什么形式的配置,最上层总包括以下的基本元素。
l 连接器(connectors):所有的传输组件都没有默认的配置;
l 端点(endpoints);提倡对端点进行全局定义,这样可以清楚地描述你的集成通道在什么位置;
l 转换器(transformers):可能需要全局定义,然后在你的服务中进行引用;
l 过滤器(Filters):同转换器。
l 模型(Models);一个或多个模型,从逻辑上组成了你的服务。
高级配置
另外,你可能还需要某些高级的配置:
l 代理(Agents):代理通常用于提供一些横向的服务,比如日志和管理;
l 通知(Notifications):在有生命周期的事件上,通知某些事件;
l 安全管理(Security Manager);
l 传输组件管理(Transaction Manager) ;
l 全局配置选项(Global Configuration Options):不同种类的全局设置;
l 全局属性(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。
例如:
默认的队列描述,处理描述以及池化描述在哪里?
队列描述和处理描述配置在模型中,池化描述配置在池组件中。
配置端点
内容略
使用转换器
内容略
<!--EndFragment-->
分享到:
相关推荐
自己翻译的Mule 2.x Getting Started Guide的文档,里边很多翻译的不是很好,各位需要的可以下载看一下,内容大多是对Mule进行简单的介绍!
ESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docxESB解决方案-mule分享.docx
mule-1.4.4开发指南 mule esb开发指南
mule2.0 getting-started esb j2ee
Mule讲解.docxMule讲解.docx
Manning.Mule.in.Action.2nd.Edition.Feb.2014.pdf 第二版 及 源码
Chapter 2. Processing messages with Mule Chapter 3. Working with connectors Chapter 4. Transforming data with Mule Chapter 5. Routing data with Mule Chapter 6. Working with components and patterns ...
MULE与ServiceMix的区别的各种摘要
弹性APM Mule3代理介绍此插件允许使用Elastic APM监视Mule 3.x组件的应用程序性能。 它提供了一种非侵入性的方式来度量和基准化Mule中的各个流程和步骤,并添加了对Mule组件的应用程序性能监控,以与日志,指标和...
mule 2.0 users-guide pdf esb j2ee
mulemulemulemulemulemulemulemule
mule-2.X-users-guidemule-2X-users-guidemule-2.X-users-guidemule-2.X-users-guide
mule-2.2.1-users-guide
It starts with a quick overview of ESB technologyand a bit of Mule history-including the key changes between Mule 1.x andMule 2. Readers learn to configure Mule and then get straight to the goodstuff...
包含http、cxf、vm、sap、activeMq、ftp、file、poll、Smtp、attachment、melExpression、Java、template节点的使用示例等。
关于在tomcat上进行mule多线程数量参数配置
Mule2编译指南 博文链接:https://netfly.iteye.com/blog/222123
mule 是java 实现ESB 的开源工程, 让你实现牛X的企业总线, 第2版的事mule in action....