`
cake918
  • 浏览: 22935 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Mule ESB浅析6——启动流程1

    博客分类:
  • SOA
 
阅读更多



 mule主要是通过mule_config.xml配置进行流程的编排,因此启动过程主要是配置的导入,以及相应资源的初始化操作。

关于配置的导入,如果是独立部署的方式,则需要在启动代码中手动调用**ConfigurationBuilder类传入配置文件进行配置的导入。如果是嵌入到web容器中,则在web.xml中配置好后,会进行自动加载。

 

整个mule 实例的核心管理结构为muleContext,整个初始化过程也就围绕该实例资源的初始化。


<!--[endif]--><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.11" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1421329717"> </o:OLEObject> </xml><![endif]-->

 

其中在buildMuleContext阶段,

<!--[if !supportLists]--> 1)<!--[endif]-->初始化muleContext需要的资源,包括configuration,lifecycle manager,work manager,work listener,server notification manager,registrybroker等。

<!--[if !supportLists]-->2)  <!--[endif]-->对创建好的context进行配置,独立部署时,直接通过config接口传入配置文件的方式进行导入;嵌入到tomcat能web容器部署时,通过web.xml的配置文件进行加载。

3)调用refresh操作,这里refresh操作为spring框架实现,用于启动IOC容器的初始化。这里启动创建所有实例都会放到Registry容器中统一管理。

 此处 registry是所有实例的容器,具体类图如下:

 

Mule在context中通过registry broker来维护spring registry,transient registry,guice registry。

 

spring registry的功能是维护通过spring注入的所有实例;

 

transient registry的功能是维护默认的处理函数链表_muleContextProcessor_muleExpressionEvaluatorProcessor_muleExpressionEnricherProcessor_muleLifecycleStateInjectorProcessor_muleLifecycleManager

 

还有mule配置注入的connector,endpoint等对象,对象在创建时会主动注册其监听的事件。

 

guice registry维护通过guice框架注入的对象。

 

mule访问registry中具体对象的流程为:

 

muleContext->muleRegistry(muleRegistryHelper)-->DefaultRegistryBroker-->registry array--> registry --> object。

 

目前在spring启动的方式下,就包括了spring 和transient 两个registry。

 

 

4)在refresh之后,调用firelifecycle,进入RegistryLifecycleManager,对启动阶段的模块调用start进行初始化操作。

 

调用contextstart方法,

 

a)通过notification的通知机制,触发所有监听状态的处于CONTEXT_STARTING阶段的实例。

 

b)调用fireLifeCycle方法,触发制定对象的start操作,主要是对mule-config.xml中配置的flowendpoint等进行start,总入口为RegistryLifecycleManagerinvokePhase方法。之后分别调用各个模块实例的start方法。

 

具体的加载流程如下图所示,最终会启动transactionQueueManagerconnectoragentmodelflowConstructstartable对象的所有实例(调用对应的start函数实现)。

 

 

至此,mule启动完毕,在各个connector上等待接收数据。针对每一个启动的实例,都有的单独的处理线程。

针对具体实例的start操作,下面分别介绍之!

 

 

  • 大小: 32.8 KB
  • 大小: 31.5 KB
  • 大小: 32.3 KB
分享到:
评论

相关推荐

    mule -esb 源码

    `security.policy`文件是Java安全策略的配置,用于控制Mule ESB在执行过程中对系统资源的访问权限。通过这个文件,我们可以限制Mule的某些操作,以增强系统的安全性。 `email.properties`可能是一个包含电子邮件...

    Mule ESB手册-中文版

    1. Mule ESB简介 Mule ESB(Enterprise Service Bus)是MuleSoft公司开发的一款企业服务总线产品,它允许企业内部和不同企业之间的服务进行集成,易于连接各种服务和应用。Mule ESB支持多种传输协议、消息格式和数据...

    MULE ESB-4.1企业版运行环境

    5. **部署流程**:将开发的Mule应用解压并放入“apps”目录后,MULE ESB会在启动时自动检测并加载这些应用。通过管理控制台或者命令行工具,可以对应用进行启动、停止、重启等操作。 6. **企业特性**:MULE ESB企业...

    ESB原理及Mule ESB实践

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

    MuleESB帮助文档

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

    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_3.0_中文教程

    1. **工作流与流程控制**:介绍如何利用Mule ESB实现复杂的业务流程,如条件分支、循环和并行处理。 2. **安全策略**:探讨如何设置和实施安全策略,保护系统免受攻击。 3. **消息队列与事件驱动**:了解如何利用...

    MULE ESB-4.1社区办运行环境

    6. 服务器启动后,Mule应用程序将自动加载并运行。 总之,MULE ESB-4.1社区版提供了一个全面的集成平台,帮助开发者快速、轻松地连接和管理各种系统。它的易用性、灵活性和广泛的连接器支持,使其成为企业级集成...

    MuleESB3.0中文教程

    - **生命周期改进**:优化了Mule的启动和关闭过程,支持JSR-250生命周期注解。 - **异常处理**:改进了异常处理机制,增强了异常处理的兼容性。 - **自动转换**:增强了自动转换引擎的功能,支持自定义转换规则,...

    mule esb 的简单介绍

    1. **企业消息总线和消息代理**:Mule ESB作为一个消息中间件,提供了一个中央通信平台,允许不同的服务和应用通过消息传递进行交互。这种基于J2EE 1.4的标准使得它具有高度的可扩展性和可靠性。 2. **可插入的连接...

    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)技术的开发者设计。Mule ESB 是一款强大的集成平台,能够连接各种应用程序、数据源和服务,实现企业级的数据...

    mule ESB 3 user guider

    1. Mule ESB概述: Mule ESB是一个开源的中间件平台,用于构建企业级的集成应用。它能够让不同系统、服务和设备之间的数据轻松流动,从而实现各种应用程序和数据源之间的无缝通信。Mule ESB通过插件机制支持多种协议...

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

    总结起来,这个压缩包提供的资源对于初学者或者有经验的Mule ESB开发者来说都是非常宝贵的,它涵盖了从安装开发环境到深入理解Mule ESB概念和实践操作的整个过程。随着更多研究成果和样例的发布,这将是一个全面学习...

    mule esb mule esb打包手册文档

    Mule ESB的核心功能包括数据转换、协议适配、消息路由以及流程管理,旨在简化企业的IT架构并提高效率。本手册将详细探讨Mule ESB的打包过程,帮助开发者理解和实施相关的操作。 1. **Mule ESB概述** Mule ESB是Any...

    Mule ESB应用部署

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

Global site tag (gtag.js) - Google Analytics