您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > MULE-3.2-节点详解
有流通,就有富基融通whereisconsumer,thereiseFuture.MULEESB应用说明尹亮有流通,就有富基融通whereisconsumer,thereiseFuture.一个MULE应用由一个编排XML文件和相关JAR包组成,部署在MULE服务器(mule-standalone-3.1.2)的apps目录,可以把MULE应用以ZIP文件的形式直接放在apps目录(MULE服务器启动时会自动解压)或按目录部署,一个目录为一个MULE应用,一个典型的MULE应用目录结构如下:mule服务器目录--apps--Samplelibmule-config.xmllib目录存放本应用使用到的所有JAR包,如果多个mule应用共用的JAR包,例如第三方开源JAR包,可以放入mule应用服务器的lib\boot目录共享使用mule-config.xml为缺省的mule服务编排配置文件(必须这个名字)。当有多个编排XML文件时,应增加一mule-deploy.properties文件,在文件中指定编排XML文件名MULE应用的部署有流通,就有富基融通whereisconsumer,thereiseFuture.MULEESB的编排原则MULEESB服务编排以流(FLOW)为单位进行编排,每个流一般都由以下几个常用节点元素组成入口端点(inbound-endpoint)组件(component)消息转换器(transformer)流控制器(flowcontrol)其他节点元素出口端点(outbound-endpoint)范围容器(scope)过滤器(filter)全局公共节点(GlobalElement:端点连接器、消息转换器、云连接器、过滤器)云端连接器(CloudConnector)MULE编排的基本原则流编排中的每个节点的输入是上一节点的输出,每个节点的输出是下一节点的输入,这个传输数据在MULE中被称之为payload,封装在一个MuleMessage的对象中进行传输当上一节点的输出和下一节点的输入类型不一致时,在两个节点之间编排消息转换器当需要依据上一节点的输出payload进行分支编排时,编排流分支选择控制器更多MULE编排的可视化使用方法见《MuleStudio用户手册》有流通,就有富基融通whereisconsumer,thereiseFuture.ESB应用的一些常量表达式在ESB的配置中有一些常量表达式可以用在各种命名中属性说明#[function:datestamp]当前日期时间,例如:31-12-11_23-59-59.391#[function:datestamp:yy-MM-dd]当前系统日期,例如:11-12-31#[function:systime]当前系统时间,LONG型:12812391293#[function:uuid]唯一GUID,#[function:]还支持一些函数now,date,hostname,ip,count.等#[header:MessagePropertyName]传入MuleMessage中的属性值,例如:#[header:host]${app.home}本ESB应用的app主目录${mule.base}MULE应用服务器目录还可以通过导入.properties属性配置文件,再通过${属性名}来引用常量,导入属性配置文件的方法是在编排XML中加入context:property-placeholderlocation=属性文件名/更多常量表达式的使用方法参见官方文档:有流通,就有富基融通whereisconsumer,thereiseFuture.常用的端点(endpoint)端点连接器的作用是在不同的网络通讯协议之间进行转换访问一般来说,端点用来发送和接收数据,负责连接外部资源并发送信息,端点可以是输入端点也可以是输出端点。一个MULE应用一般至少有一个端点连接器作为入口来响应来自于网络的请求,当端点作为出口端点使用时可理解为作为客户端向外发送请求。常用的几种连接器如下:HTTPQuartzFTPFilePOP3/SMTPGenericVMJettyTCP/UDPSTDIOJDBCJMS更多端点连接器参见有流通,就有富基融通whereisconsumer,thereiseFuture.全局端点连接器(Connector)在了解各种端点前先了解下全局端点连接器(GlobalElementConnector)的作用,全局端点连接器的作用是定义ESB应用中所有同类型端点能够共用的一些属性,这些属性对本ESB应用中的对应的所有端点都起作用。如果同一个类型的全局端点连接器定义了多个,那么在各入口端点和出口端点中必须使用connector-ref来指点引用哪个全局端点连接器。全局端点连接器和端点一样也分为不同的种类,每种端点都有一个全局连接器定义一些扩展属性。例如HTTP端点的全局连接器可以定义代理网关等属性全局端点连接器不是必须的,但可以为端点提供一些扩展属性的设置每个端点对应的全局连接器更多属性设置可参考官方文档各种端点的XML标签定义规则端点描述定义:协议名:endpointname=XXX属性1=属性N=/入口端点定义:协议名:inbound-endpoint属性1=属性N=/出口端点定义:协议名:outbound-endpoint属性1=属性N=/全局连接器:协议名:connectorname=XXX属性1=属性N=/有流通,就有富基融通whereisconsumer,thereiseFuture.HTTP端点HTTP端点作为入口时接收HTTP协议的请求,作为出口时则向指定服务器发送HTTP请求,常用属性有属性必须?缺省值说明doc:nameno所有节点共有的属性,muleStudio可视化编排工具的显示名称doc:descriptionno所有节点共有的属性,muleStudio可视化编排工具的显示描述hostyesDNS名称或IP地址portyes8081连接端口userno如果HTTP访问需要授权,这里设置验证的用户名passwordno如果HTTP访问需要授权,这里设置验证的密码pathnoHTTPURL的相对路径contentTypenotext/plain设置HTTP访问的ContentType参数keep-alivenofalse设置Socket连接是否保持激活状态(true/false)methodnoGET设置HTTP访问的方法(GET/POST/DELETE等)有流通,就有富基融通whereisconsumer,thereiseFuture.HTTP端点-2常用属性(续),以下属性在各类端点中都具有共性属性必须?缺省值说明exchange-patternnoone-way请求应答模式,(大多数端点都共有该属性)request-response同步模式,需要等待应答one-way异步模式,单向无应答responseTimeoutno10000端点需要应答时,等待应答超时时间(ms)(具有应答模式的端点共有属性)addressno通用URI路径,不能和host、port、path同时使用(@host:port/path)(各种端点都共有该属性,URI格式按端点分)disableTransportTransformerno禁止端点使用端点信息转换器connector-refno端点引用同类型全局连接器名字,如果存在多个同类型全局连接器,端点必须指定一个连接器transformer-refsno端点接收消息后被执行的转换器列表,空格分隔(各端点共有的属性)responseTransformer-refsno应答消息到来后被执行的转换器列表,空格分隔(具有应答模式的各类端点共有的属性)encodingno数据在各端点内转换的编码格式.(共有属性)有流通,就有富基融通whereisconsumer,thereiseFuture.HTTP端点-3XML编排实例http:inbound-endpointhost=localhostport=8081path=congou/orhttp:outbound-endpointhost=localhostport=8081method=GET/可用于HTTP消息转换的几种转换器http:http-response-to-object-transformer/http:http-response-to-string-transformer/http:object-to-http-request-transformer/http:message-to-http-response-transformer/http:message-to-http-response-transformer/更多属性可参考官方文档有流通,就有富基融通whereisconsumer,thereiseFuture.Quartz定时端点Quartz端点一般作为入口端点用来定时触发任务,常用属性有属性必须?缺省值说明jobNameyes定时器名字cronExpressionyes采用Quartz的cron表达式设置任务触发时间,不可和repeatInterval等三个参数同时使用QuartzCron表达式生成器startDelayno定时器任务延时启动时间(ms)repeatCountno定时器任务触发1次后,再重复触发的次数,实际执行次数是N+1repeatIntervalno定时器任务重复触发的时间间隔(ms)必须的JOB子节点(5个子节点任选其一)子节点描述quartz:event-generator-job最常用的通用事件JOB,支持字符串、文件数据作为任务事件的输出数据quartz:custom-job/quartz:custom-job-from-message/quartz:endpoint-polling-jobquartz:scheduled-dispatch-job有流通,就有富基融通whereisconsumer,thereiseFuture.具体任务组件不需要传递任何数据的配置方法quartz:event-generator-job/将配置的字符串作为payload向下一节点传递quartz:event-generator-jobquartz:payloadfoo/quartz:payload/quartz:event-generator-job将文件内容作为payload向下一节点传递quartz:event-generator-jobquartz:payloadfile=payload-data.txt//quartz:event-generator-job通常在Quartz定时器端点后编排一个组件方法用来执行具体的定时任务更多属性可参考官方文档
本文标题:MULE-3.2-节点详解
链接地址:https://www.777doc.com/doc-4870921 .html