Mule技术架构

一.需求

  • 简化不同数据源之间的数据交互
  • 简化不同应用之间的服务交互
  • 可扩展、轻量级、可嵌入、可定制、简单易用

二.架构风格选择

Mule使用的是基于消息的架构风格(如上图所示),消息具有程序语言无关系、组件无关性、数据格式灵活性、消息无状态等特征,基于消息的服务也同样具有无状态的特征,此外,消息风格有非常成熟的应用模式,能够满足当前遇到的大部分数据应用需求以及SOA的需要。因而能够很好的满足需求中的前2个和第三个的可扩展、可定制的需求。

  • Application:可以是程序段、外部系统。
  • Channel:连接任何2个应用点(计算点),通过消息进行沟通,可参考《EIP - Message Channel (60)

Message Receiver:用来从应用节点中读取、写入消息。Inbound Router:进入计算组件(component)之前的控制和处理,例如:过滤、聚合、排序等。Connector:在Channel上建立链路层,Message Receiver绑定在connector上监听数据、派发数据。Transformers:转换消息格式。Endpoint:把channel抽象为服务的一种配置组件,这些被配置的元素有connector, endpoint URI, transformers, filters and transactional。Outbound Router:消息从计算组件(component)流出后的控制和处理,例如:过滤、Pub/Sub、拆分、路由等。

三. 技术框架和领域对象介绍

  1. The Model:提供框架的运行时环境,管理配置、组件实例,提供运行模式;用户甚至可以定制自己的运行模式(很强大)。Model模型包含如下内容 Descriptors、UMO components、 An endpoint resolver、A lifecycle-adapter factory、A component resolver、A pool factory、An exception strategy。
  2. Entry Point Resolver:与应用组件(POJO等)的交互。
  3. Lifecycle Adapter:将MULE实例的生命周期映射到应用组件,间接接管应用组件。
  4. Component Pool Factory:应用组件管理,提供pool能力。
  5. Transport Providers:使Mule组件发送和接收消息的部件。

Connectors:对Connector的实现。Endpoints Address:资源标识的一种方法。例如,pop3://user:password@mail.mycompany.com ,file:///tmp/data/in,vm://MyUMO,axis:http://mycompany.com/mule/services/MyUMO等Endpoint Resolution:对附加在Endpoint的配置进行解析,例如,jms://topic:myTopic?durable=true。Message Receivers:消息接收者或监听者,不同类型的协议实现方式不同。例如TCP协议,只需要监听端口即可,File协议,需要定制一个线程去扫描文件系统,VM协议,可以不做任何事。Message Adapters:负责消息的转换。Transactions:提供事务支持。(没敢用,实际中,都是通过其它方式实现事务)Container Contexts:嵌入式的时候使用,能够把Mule容器和外部容器打通。与Spring整合的已经非常完美。UMO Components:mule的核心抽象之一,主要用来包装应用组件(POJO等)。Component Lifecycle:组件的生命周期。

Events:Mule框架采用事件( SEDA,强烈推荐阅读 Using SEDA to Ensure Service Availability )架构来实现。

Inbound Routers、Outbound Routers:对应于消息架构中的2个部件。Event Processing:Mule提供三种事件处理方式,(1)Asynchronously,(2)Synchronously ,(3)Request-Response相当于用异步实现的同步。 ( 具体使用模式,请参考原文)Interceptors:Mule框架提供拦截器模式,以方便用户扩展组件整体行为。

Exception Management:提供异常管理的机制,默认的异常粗略很糟糕,最好自己定制。Agents:为运维人员提供的管理接口。Thread Pool:线程池管理,Mule的线程池和池策略需要仔细配置,否则很容易出现错误。Mule提供共用线程池和独立线程池模式,建议使用共用线程池模式。

转载于:https://www.cnblogs.com/liyazhou/archive/2011/03/23/1993196.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值