ActiveMQ笔记:源码分析

本文深入探讨了ActiveMQ的启动过程,包括独立运行和嵌入式启动方式,重点分析了BrokerService、TransportConnector和NetworkConnector的角色。TransportConnector负责Client与Broker间的通信,Transport与TransportServer接口定义了通信规范,而NetworkConnector则管理Broker之间的消息传递,利用DiscoveryAgent发现并建立连接。
摘要由CSDN通过智能技术生成

本文对ActiveMQ的启动过程,以及BrokerService,TransportConnector和NetworkConnector等几个重要的模块的代码做一个简要的分析。

启动过程

如果要快速地了解系统的主要模块,最好的办法是熟悉该系统的启动过程。本文首先分析ActiveMQ的启动过程。

ActiveMQ可以作为一个独立的Java程序,单独运行。ActiveMQ也可以embed到其它的Java程序里面,作为该程序的一部分运行。

当ActiveMQ作为独立的程序运行时,实际执行的是${ActiveMQHome}/bin/ activemq.jar里的org.apache.activemq.console.Main。该Main类,可以执行activemq-console里的XXXCommand类定义的命令,根据传入Main类的XXX命令,调用相应的XXXCommand类命令。正常启动ActiveMQ,会使用“start”,因而会使用StartCommand类调用BrokerFactory.createBroker()来创建BrokerService。而该函数最终调用XBeanBrokerFactory.createBroker()创建XBeanBrokerService(是BrokerService的子类)。 

如果ActiveMQ作为其它Java应用程序的一部分,常用的方法是使用Spring/XBean(XBean是在Spring的基础上进一步的简化了启动Bean所需要的配置)的机制。通过该机制,使用基于Spring的XML的配置文件,以及ActiveMQ的XBean定制的namespace,创建了XBeanBrokerService的bean。

可见,两种不同的方式,最终创建相同的XBeanBrokerService。该类的start()函数,通过创建B

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值