配置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是什么? Mule 是一款基于 Java 的轻量级消息框架,旨在帮助开发者快速、便捷地连接各种应用程序,实现它们之间的数据交换。它支持多种技术栈,如 ...
综上所述,“mule-1.4.4-getting-started.pdf”是一份详尽的入门指南,覆盖了 Mule 1.4.4 版本的安装、配置、启动及使用等方面的知识点。对于初学者来说,通过阅读这份文档可以快速了解 Mule 并掌握其基本操作。
根据提供的文档信息,本文将对"Mule 2.1.1 Getting Started"这一主题进行深入解析,主要包括Mule的基本概念、架构理解、消息传递机制、环境集成等方面,并通过具体示例来帮助理解如何使用Mule。 ### Mule 2.1.1简介...
### Mule 2.0 Getting Started Guide:ESB与J2EE环境下的集成服务 #### 概述 Mule 2.0是一个重要的版本更新,它不仅为开发人员提供了更加强大、灵活的服务总线(ESB)配置能力,还通过引入Spring框架进一步提升了...
根据提供的文档信息,本文将对"Mule 2.0用户指南"进行深入解析,并提炼出与标题、描述及部分文档内容相关的IT知识点。 ### Mule 2.0配置指南概览 #### 一、Mule 2.0简介 Mule 2.0是一款高度可扩展的企业服务总线...
Mule 2.x提供了强大的配置机制,使得用户可以根据需求进行细致的调整。主要包括: - **配置一个Mule实例**:介绍如何设置基本的Mule环境,包括配置文件的基本结构和参数设置。 - **配置端点**:解释了如何定义Mule...
"list_map_to_pojo_2.grf", "list_map_to_pojo.grf", 和 "list_map_to_pojo_1.grf" 文件是Mule的图形化流程定义。它们描述了数据从Map到Java POJO(Plain Old Java Object)的转换过程。这些转换在Web服务的输入和...
在“EIP经典案例ESB实践之Mule实现.doc”文档中,你将深入了解到如何使用Mule ESB来实施Load Broker方案,包括具体的配置步骤、示例代码以及最佳实践。通过学习和实践,你可以掌握如何利用Mule ESB优化企业的服务...
Mule讲解.docxMule讲解.docx
Mule是一个基于服务容器和消息端点配置的系统,它提供了一种灵活的集成方式,允许开发者构建和管理复杂的服务网络。尽管Mule并不依赖Java Business Integration (JBI)标准,但它通过JBI绑定支持与JBI容器(如...
#### 第二章:路由器及其路由模式 **路由模式 (Routing Patterns)** 路由模式是设计集成解决方案时经常使用的设计模式之一。这部分介绍了几种常见的路由模式,如分发、选择、广播等。 **入站路由 (Inbound ...
2. **Mule Standalone版本**: - 独立版本的Mule ESB是一个自包含的运行时环境,无需额外的服务器或应用服务器即可运行Mule应用程序。 - 它包含所有必要的组件和库,便于快速部署和测试Mule应用。 - 独立版适用于...
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 ...
弹性APM Mule3代理介绍此插件允许使用Elastic APM监视Mule 3.x组件的应用程序性能。 它提供了一种非侵入性的方式来度量和基准化Mule中的各个流程和步骤,并添加了对Mule组件的应用程序性能监控,以与日志,指标和...
接下来,书中通过实际案例展示了如何设置和配置Mule ESB环境,包括安装、搭建开发环境以及创建第一个Mule项目。 在深入讨论Mule ESB的核心功能时,书中涵盖了数据转换、路由、事件驱动架构、错误处理和监控等关键...
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...