1.Endpoint

Mule的endpoint和WS中的endpoint是非常类似的,它是消息进出(读写)的入口,不同的是mule的endpoint可以基于各种不同的传输协议。
mule的endpoint分成两类:

  • global endpoint:全局的endpoint,一个flow或service的inbound或outbound endpoint可以通过ref属性引用这些endpoint.
  • low或service内的inbound或outbound endpoint,这类endpoint仅限于flow或service内,可以认为是一种局部endpoint.

每一个endpoint都必须指明它的传输协议是什么,或者说它是什么传输类型的endpoint,指定方式有两种:

  • 在<endpoint/>元素上追加传输协议前缀:
[html]view plaincopy
  1. <http:endpoint name="in" host="localhost" port="8080" path = "services/orders" user="${user.name}" password ="${user.password}"/>
  • 通过<endpoint/>元素的address属性指定:
[html]view plaincopy
  1. <endpoint addres="http://${user.name}:${user.password}@localhost:8080/services/orders/>

刚开始接触mule时对inbound和outbound的endpoint可能一时不太好区分,实际上所谓的in和out都是以mule的视角来定位的,inbound指的是外部message“流入”mule的断点,也就是mule暴露给外部应用可以访问的端点,同理,outbound就是message从mule向外“流出”的端点,也就是一个可以访问的外部应用的端点。比如一种最典型也是最普遍的WS代理配置,也就是将不同物理地址的WS统一挂接到ESB,由ESB以一致的地址发布,如:

[html]view plaincopy
  1. <pattern:web-service-proxy name="weather-forecast-ws-proxy"
  2. inboundAddress="http://localhost:8090/weather-forecast"
  3. outboundAddress="http://server1:6090/weather-forecast"
  4. wsdlLocation="http://server1:6090/weather-forecast?wsdl" />

在这段配置中,ESB把原物理地址为:http://server1:6090/weather-forecast 的服务经过包裹,以新的地址http://localhost:8090/weather-forecast 发布出去。作为inboundAddress,http://localhost:8090/weather-forecast是ESB对外“开放”或“发布”的端点,也就是消息流入ESB的端点。outboundAddress则是ESB路由的目的地,其往往是某个现存系统的访问入口。


2.Transformer

Transformer是负责消息传输过程中的数据转换,如从JSON对象到一个Java对象的转换:

[html]view plaincopy
  1. <json:json-to-object-transformer name="jsonToFruitCollection" returnClass="org.mule.module.json.transformers.FruitCollection">
  2. <json:deserialization-mixin mixinClass="org.mule.module.json.transformers.OrangeMixin" targetClass="org.mule.tck.testmodels.fruit.Orange"/>
  3. </json:json-to-object-transformer>

3.Filter

Filter是用于配置是否要对消息进行过滤的配置项,除像wildcard-filter这样的基本Filter,Mule还有功能强大的逻辑Filter用于进行过滤条件的组合。

[java]view plaincopy
  1. <or-filter>
  2. <wildcard-filter pattern="*priority:1*"/>
  3. <and-filter>
  4. <not-filter>
  5. <wildcard-filter pattern="*region:Canada*"/>
  6. </not-filter>
  7. <wildcard-filter pattern="*priority:2*"/>
  8. </and-filter>
  9. </or-filter>

4.Flow

Flow是mule的最基本处理单元。它从一个inbound endpoint开始,对message进行了一系列的处理,然后从outbound endpoint输出。这期间会flow会使用到上述提及的多种组件参与处理,如transformer、filter等等,而且还可能调用java或其他语言实现的组件进行处理,应该说在应用集成里,flow所要实现的,正是所谓的“集成逻辑”。

Mule的基本配置元素:Endpoint、Transformer、Filter、Flow相关推荐

  1. WCF调试异常信息:找不到类型“”,在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHosting...

    "/CommonHelpServices"应用程序中的服务器错误. 找不到类型"JianKunKing.Common.CommonHelp.Services.Servic ...

  2. SpringSecurity权限管理框架系列(七)-SpringSecurity自定义配置类中自定义Filter的使用详解

    1.Filter请求过滤器 filter请求过滤器可以帮助我们进行HttpServletRequest请求和HttpServletResponse响应的过滤 在自定义的Filter过滤器中我们可以对我 ...

  3. SpringBoot下,利用@WebFilter配置使用与注意Filter

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如JSP,Servlet,静态图片文件或静 ...

  4. Asp.net Web.Config - 配置元素customErrors

    Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了.可惜之前一直未曾了解到MSDN的强大. 先贴个地址:http://msdn.microsoft.com/zh-cn/library ...

  5. SCCM 2012系列4 配置SCCM2012 Endpoint Protection上

    自微软的企业级防病毒FCS开始到FEP2010再到SCCM 2012集成防病毒,集成度是越来越高了,那今天我就给大家先分享下这个微软的企业防病毒吧! 1 部署Endpoint Protection客户 ...

  6. Asp.net Web.Config - 配置元素 httpCookies

    1.属性 属性 说明 domain 可选的 String 属性. 设置 Cookie 域名. httpOnlyCookies 可选的 Boolean 属性. 脚本(javascript之类)能够访问 ...

  7. springBoot配置多个过滤器filter的执行顺序

    1.自定义过滤器 过滤器类实现 javax.servlet.Filter.然后添加注解 @WebFilter(filterName="过滤器名称" urlPatterns=&quo ...

  8. 配置元素customErrors

    Asp.net配置文件的配置方式,其实在MSDN里面是写得最清楚的了.可惜之前一直未曾了解到MSDN的强大. 先贴个地址:http://msdn.microsoft.com/zh-cn/library ...

  9. 元素算法Bloom Filter

    最近研究元素算法,稍微总结一下,以后继续补充: 快速判断item是否存在于一个集合中.hbase使用bloomfilter算法,用blockID去regionMeta中判断是否分布在某个region中 ...

最新文章

  1. Git record
  2. java架构程序员月入破3万到底是怎么炼成的,一篇文章让你了解
  3. linux dns chroot,系统运维|在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
  4. SDWebImage 4 0 迁移指南
  5. 更改Java包名称如何改变我的系统架构
  6. ssm把后端数据传到前端_前端传数据到后台分别JSON和STRING接收 AJAX SPRINGBOOT ssm
  7. 三星Galaxy Note 10系列价格曝光:顶配售价要破万
  8. Python笔记之读取yaml文件
  9. linux下的C语言开发(信号处理)
  10. USB2.0学习笔记连载(一):CY7C68013特性简介
  11. cocos2dx中的动作
  12. Excel 新手向个人练习-1 VLOOKUP,COUNTIF
  13. 桌面文档另存计算机怎么存,如何把word保存到桌面
  14. CSS3选择器及优先级
  15. tomcat加大内存配置
  16. 网络综合布线测试的新选择-AEM
  17. Actionbar 溢出菜单背景色设置
  18. 毕设 JAVA JSP工资管理系统的设计与实现论文
  19. [附源码]计算机毕业设计Python+uniapp基于Android的校园考勤APPo0400(程序+源码+LW+远程部署)
  20. vb.net读取写入EXCEl的终极方法-NOPI

热门文章

  1. boost::regex模块部分正则表达式迭代相关的测试程序
  2. boost::describe模块实现==重载的测试程序
  3. GDCM:尝试修复损坏的J2K / DICOM的测试程序
  4. boost::first_scalar的测试程序
  5. boost::contract模块实现base types的测试程序
  6. boost::callable_traits移除const成员的测试程序
  7. ITK:创建一个后向差分运算符
  8. VTK:相互作用之RubberBand3D
  9. VTK:图片之ImageCityBlockDistance
  10. Qt将应用程序部署到Android设备