`
ihuashao
  • 浏览: 4711661 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Mule ESB 2.0 苦斗两周之后的初印象

阅读更多
与Mule 2.0抵死缠绵了两周,喜忧掺半。但只在2.0之后,Mule才算真正站到了ESB的起跑线上。 完整的笔记见我的Wiki: http://wiki.springside.org.cn/display/calvin/Mule , 这里主要列一下实际的升级感受。

1. 很Spring,很SCA的配置文件

  • 全Spring又全nameSpace化的配置文件,简洁而规范,在IDE中有良好的提示。 尤其是transport相关的endpoint的改进明显,原来的URI<endpoint address="pop3://bob:secret@localhost:62002"> 或如下的connector
<!--{cps..0}--><connectorname="SystemStreamConnector"className="org.mule.providers.stream.SystemStreamConnector"> <properties> <propertyname="promptMessage"value="Pleaseentersomething:"/> <propertyname="messageDelayTime"value="1000"/> </properties> </connector>

改为transport特定的namespace后,IDE中清晰显示了可选的配置项。

<!--{cps..1}--><stdio:connectorname="SystemStreamConnector"promptMessage="Pleaseentersomething:"messageDelayTime="1000"/>

  • SCA的Service/Component概念。 Service/Component代替了原来注定要被遗忘的MuleDescriptor,其中Component定义业务逻辑的POJO,Service定义如何以服务的方式管理组件的配置。 在POJO中调用远程服务的Nested Router也改为了很SCA的Binding。 Component也有Component 与 PooledComponent的选项。完整的例子如下:
<!--{cps..2}--><pooled-component> <spring-objectbean="mySpringPojo"/> <bindinginterface="org.mule.example.loanbroker.credit.CreditAgencyService"> <outbound-endpointref="CreditAgency"/> </binding> <pooling-profileexhaustedAction="WHEN_EXHAUSTED_FAIL"initialisationPolicy="INITIALISE_ALL" maxActive="1"maxIdle="2"maxWait="3"/> </pooled-component>

上文按pooling-profile定义的pooled-component,在spring中定义mySpringPojo,并将一个远程的CXF Endpoint binding到POJO的CreditAgencyService变量中,可直接调用;

  • 可视化拖拽的Eclipse 插件Mule IDE。 虽然还非常原始,但总算有个盼头。

2. 架构的更改

  1. Web Service支持增强 随着CXF作者的加入,Web Service这事实上SOA里最重要的Transport得到了加强,WSDL终于可以通过annotation准确配置。 虽然无奈,就冲这个理由就应该升级到2.0了。不是2.0太好,而是1.4太差了。
  2. REST支持增强 Mule RESTPack ,支持apache abdera(Atom Publish协议实现),Jersey(JSR131 RESTful WebService实现)和Restlet 三种Transport。
  3. 代码结构的合理化 抽象出相对稳定的org.mule.api接口包,代替原来的org.mule.umo包。 开发团队还检查调整了Mule中所有对象的定义,使其更加准确。
  4. 各个模块的升级 如核心MuleManager大对象拆成MuleContext and Registry,运行时Reistry支持动态加载Service,支持向OSGI进军; 如以流的方式转换处理消息。 如SEDA模型定义的细化,见后。
  5. 工具增强 Mule Galaxy  SOA治理工具(开源), Mule Saturn  消息流监控工具,Mule HQ  底层监控工具。 不过还没试用不知道实际效果如何。

3. 遗憾的地方:

  1. 性能下降 无论是代替XFire的CXF还是Mule 2.0,都拖得性能大大下降。 用一个简单例子测试,Mule 1.4+XFire : Mule 1.4 + CXF : Mule 2.0 + CXF 的每秒事务数对比是15000:10000:8000。
  2. 仍然没有自带的集群 ,负载均衡,流量控制实现。 不像BEA、ServiceMix都使用JMS的底层,Mule使用vm queue在单一JVM的节点间流动。 我们团队主要用TerraCotta 在集群里同步状态数据,流量控制与负载均衡也是自己实现。
  3. CXF transport 仍然使用Mule自己实现的Http Connector。 CXF Standlone也是用Jetty的,看tomcat们努力的劲头,相信谁都能随便实现一个不错的Http Connector。
  4. 从1.4升到2.0非常的花时间。 估计团队重构的太兴奋了,从代码到配置文件再到XFire to CXF,一些代码级修改还没文档详述。
  5. 文档从1.4版更新到2.0版的进度太慢,而且文档仍然简略。
  6. 质量仍然需要在使用中检验。 文档说2.0版本的比1.x版本增加了30%的单元测试用例,按理来说项目质量应该提高了。 但还是被我发现了在很重要的AbstractEntryPointResolver类里,居然有内存泄漏,原因是用没有重载Object的equals()函数的StringBuffer作为HashMap的key,结果map永远都在增大。 这说明了,开源项目的质量,最终是靠一个积极使用和反馈的用户群和一个活跃的开发团队,"用"出来的。
分享到:
评论

相关推荐

    mule -esb 源码

    《深入解析Mule ESB源码》 Mule ESB(Enterprise Service Bus,企业服务总线)是一款开源的集成平台,旨在简化企业级应用之间的数据交互。本文将围绕Mule ESB的源码进行深入探讨,揭示其核心设计理念与工作原理。 ...

    Mule ESB手册-中文版

    根据提供的文件内容,以下是关于Mule ESB手册-中文版的知识点: 1. Mule ESB简介 Mule ESB(Enterprise Service Bus)是MuleSoft公司开发的一款企业服务总线产品,它允许企业内部和不同企业之间的服务进行集成,...

    MULE ESB-4.1企业版运行环境

    MULE ESB(Mule Enterprise Service Bus)是Anypoint Platform的核心组件,它是一个强大的、全面集成的企业服务总线(ESB),专为构建、部署和管理API和集成解决方案而设计。MULE ESB-4.1是MuleSoft公司推出的企业版...

    MuleEsb开源框架简介.pdf

    Mule ESB 开源框架简介 Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、...

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    MuleESB帮助文档

    《Mule ESB详解——构建企业级集成解决方案》 Mule ESB,全称为Mule Enterprise Service Bus,是一款强大的开源企业服务总线,用于构建灵活、可扩展的企业级集成解决方案。Mule ESB的核心功能是作为不同应用系统...

    MuleESB_3.0_中文教程

    **Mule ESB 3.0 中文教程** Mule ESB(Enterprise Service Bus,企业服务总线)是一款强大的开源集成平台,专为构建可扩展、灵活和可靠的分布式应用程序而设计。Mule ESB 3.0是该平台的一个重要版本,提供了许多...

    MuleESB3.0中文教程

    ### MuleESB3.0中文教程知识点梳理 #### 一、Mule ESB 3.0概述 - **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise ...

    mule esb 的简单介绍

    Mule ESB,全称Mule Enterprise Service Bus,是一个开源的企业服务总线系统,旨在促进不同应用程序和服务之间的数据交换和集成。Mule的核心设计是基于轻量级的Java平台,尤其是J2EE 1.4标准,使得它能够在各种企业...

    mule esb cookbook 随书源码

    《Mule ESB Cookbook随书源码》是一个与Mule ESB相关的实践指南,它包含了大量实例代码,旨在帮助读者深入理解和应用Mule ESB这一开源企业服务总线(Enterprise Service Bus)。Mule ESB是业界广泛采用的ESB解决方案...

    mule esb 项目 例子 入门

    Mule ESB(Enterprise Service Bus,企业服务总线)是一款强大的开源集成平台,它帮助企业将不同的系统、应用程序和服务连接在一起,实现数据的高效流转。本教程将带您入门Mule ESB项目,通过实例学习其核心概念和...

    Mule ESB开发工具以及相匹配的英文手册和中文手册(翻译狗充值翻译)

    **Mule ESB 开发工具详解** Mule ESB(Enterprise Service Bus,企业服务总线)是一种开源的集成平台,由Mulesoft公司提供,它主要用于构建和管理API及企业内部系统的集成。Mule ESB的核心特性是轻量级、高性能和...

    mule esb开发手册

    《Mule ESB 开发手册》是一份详尽的指南,专为希望深入了解并掌握 Mule ESB(Enterprise Service Bus)技术的开发者设计。Mule ESB 是一款强大的集成平台,能够连接各种应用程序、数据源和服务,实现企业级的数据...

    ESB原理及Mule ESB实践

    ### ESB原理及Mule ESB实践 #### ESB(Enterprise Service Bus)原理概述 **ESB**(企业服务总线)是SOA(面向服务架构)架构中的关键组件之一,用于实现服务间的智能集成与管理。其核心作用在于简化不同系统间的...

    mule ESB 3 user guider

    标题:《Mule ESB 3用户指南》 描述:本手册旨在为用户提供对Mule ESB 3的基础使用指导,强调了Mule ESB作为一个社区成熟且文档丰富的开源企业服务总线(ESB)的使用方法。 知识点说明: 1. Mule ESB概述: Mule ...

    MULE ESB-4.1社区办运行环境

    **MULE ESB-4.1社区版运行环境详解** MULE ESB(Message Broker Enterprise Service Bus)是一款强大的企业级服务总线,由Mulesoft公司开发,它提供了一个集成平台,用于连接各种应用程序和服务,实现数据的高效...

    Mule ESB应用部署

    Mule ESB应用部署 Mule ESB应用的目录结构,配置文件说明

Global site tag (gtag.js) - Google Analytics