`
潜心修炼
  • 浏览: 18936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HornetQ的初始化

阅读更多
    HornetQ是Jboss旗下的一个高性能、异步的并且支持多种协议的消息系统。具体的简介请参照 HornetQ官网。

    本文只是针对HornetQ在Jboss中的启动和加载过程做一个简介,并没有做代码级别的深入解释。涉及的软件版本:服务器版本: jboss-eap-5.1GA,HornetQ版本:hornetq-2.1.2.Final。

    按照HornetQ用户指南在Jboss中安装了HornetQ后,会在JBOSS_HOME/server/下生成default-with- hornetq和all-with-hornetq两个服务器配置。其实可以将HornetQ在boss上的安装看做是HornetQ更换了jboss默认的jms实现并将jboss-messaging替换成了HornetQ。我们以default-with-HornetQ配置为例,发现会在该配置的 deploy目录下生成hornetq.sar与hornetq-ra.rar文件夹。hornetq-ra.rar主要是关于资源适配器的设置,不做本文的重点。hornetq.sar配置的是hornetq服务的相关信息。其目录结构如下:



    * hornetq-jboss-beans.xml  主要配置了HornetQ服务初始化所依赖的pojobean的相关信息,这个文件中的bean会被Jboss加载,完成Hornetq配置文件的解析,hornetq组件的启动,jms相关的jndi以及客户端的配置等。hornetq-configuration.xml HornetQ的主要配置文件。
    * hornetq-jms.xml                 jms的配置
    * login-config.xml                登陆配置
    * hornetq-roles.properties   角色配置
    * hornetq-users.properties   用户配置

    hornetq-jboss-beans.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<deployment xmlns="urn:jboss:bean-deployer:2.0">

   <!-- 配置JMX服务器->
   <bean name="MBeanServer" class="javax.management.MBeanServer">
      <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator"
                   factoryMethod="locateJBoss"/>
   </bean>

   <!-- HornetQ的核心配置 -->
   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>   

	<!-- 安全管理器的配置 -->
   <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
      <depends>JBossSecurityJNDIContextEstablishment</depends>
      <!--表示加载时不启动-->
      <start ignored="true"/>
      <stop ignored="true"/>
      <property name="allowClientLogin">false</property>
      <property name="authoriseOnClientLogin">false</property>
   </bean>

	<!--Hornetq的核心服务器 -->
   <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
   <!--表示bean之间的依赖关系-->
      <constructor>
         <parameter>
            <inject bean="Configuration"/>
         </parameter>
         <parameter>
            <inject bean="MBeanServer"/>
         </parameter>
         <parameter>
            <inject bean="HornetQSecurityManager"/>
         </parameter>        
      </constructor>
       <!--表示加载时不启动-->
      <start ignored="true"/>
      <stop ignored="true"/>          
   </bean>
   
   <!--  JMS 服务器 -->
   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
      <constructor>         
         <parameter>
            <inject bean="HornetQServer"/>
         </parameter>         
      </constructor>
   </bean>
   
   <!-- POJO which ensures HornetQ Resource Adapter is stopped before HornetQServer -->
   <!--                                                                             -->
   <!-- update the RA object name if you rename hornetq-ra.rar to jms-ra.rar        -->
   <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">
      <constructor>
         <parameter>
            <inject bean="MBeanServer"/>
         </parameter>
         <parameter>jboss.jca:name='hornetq-ra.rar',service=RARDeployment</parameter>
      </constructor>
      <depends>HornetQServer</depends>
   </bean>
   
</deployment>






    由上面的配置可以看出,Hornetq最终启动是由 org.hornetq.jms.server.impl.JMSServerManagerImpl类触发,该类初始化的过程中会触发HornetQ的核心服务器的初始化,使HornetQ的各个组件都处于运行的状态,例如Acceptor监听各自的端口和服务。




    由上图可以看出JMSServerManagerImpl负责调用HornetQ Server的初始化工作,hornetQ会根据自己是不是主备来决定要不要是JMS的相关队列和工厂对外提供服务。
那么备机什么时候会初始化JMS server呢?答案是在主机宕机的情况下,当客户端连接到备机的时候才会调用JMSServerManagerImpl的actived(),而是备机激活JMS服务。


  • 大小: 13.7 KB
  • 大小: 24.1 KB
分享到:
评论

相关推荐

    HornetQ官方学习资料

    ### HornetQ官方学习资料知识点概述 #### 一、HornetQ简介 HornetQ是一款由JBoss开发并维护的消息中间件,它具备高度的可扩展性和灵活性,能够支持集群部署以及多种消息传递协议。HornetQ不仅完全支持JMS(Java ...

    hornetq 实例

    - 初始化ConnectionFactory。 - 创建Connection,并基于此创建Session。 - 创建目的地(Queue或Topic)。 - 创建Producer,用于发送消息。 - 创建Consumer,用于接收消息。 - 发送和接收消息。 - 关闭连接和...

    Hornetq2.1中文手册

    - **持久性(DURABILITY)**:解释如何通过持久化消息来防止数据丢失,即使在系统故障后也能恢复。 - **消息 API 和协议**:涵盖 HornetQ 支持的编程接口,如 JMS (Java Message Service) API,以及使用的网络协议...

    HornetQ 2.1 中文文档

    HornetQ是JBoss社区所研发的开放源代码消息中间件;HornetQ是以Java 5 编写,因此只需要操作系统支持Java虚拟机,HornetQ便可运行。 支持Java消息服务 (JMS) 1.1 版本 集群 (Clustering) 支持庞大的消息(Message)...

    HornetQ2.3 API 文档

    HornetQ 2.3.0 Alpha 发布,这不是一个简单的 Alpha 版本,同时也是一个大的发行版本。该版本对 2.2.0 进行了重构,引入一些原子故障迁移特性和大量企业特性改进。详细的新特性介绍请看发行说明。 HornetQ是一个...

    HornetQ2.1中文手册

    ### HornetQ2.1中文手册关键知识点解析 #### 一、消息的相关概念 HornetQ2.1中文手册中详细介绍了消息处理系统的基本概念和技术细节,这对于理解和使用HornetQ至关重要。 ##### 4.1 消息相关的概念 - **消息**:在...

    hermes 监听hornetq JMS配置步奏

    Hermes则是一款图形化工具,专门用于监控和管理JMS服务器,如HornetQ,它提供了友好的用户界面来查看、发送和接收消息。 **Hermes监听HornetQ JMS配置步骤详解:** 1. **Hermes安装路径要求**: - Hermes的安装...

    hornetq-2.3.0.Final-bin.zip

    通过编辑`configuration/hornetq.config.xml`,可以定制HornetQ的行为,如设置持久化存储、集群配置、传输协议、安全策略等。 **5. 使用HornetQ** 开发者可以通过JMS API创建生产者和消费者,与HornetQ服务器进行...

    hornetq 2.4.0免安装

    3. **持久化机制**:HornetQ提供了强大的消息持久化能力,即使在服务器宕机后,也能确保消息不丢失。这通过将消息存储到磁盘上实现,恢复时可以从持久化存储中重新加载消息。 4. **集群与高可用性**:HornetQ支持...

    ActiveMQ和HornetQ性能对比

    ### ActiveMQ与HornetQ性能对比分析 #### 概述 本文旨在通过一系列测试数据对比分析ActiveMQ与HornetQ在不同消息大小及数量下的性能表现。测试环境为相同的硬件配置,确保了测试结果的公正性。通过对比两者的发送...

    .net 连接HornetQ,需要的dll

    .NET 连接HornetQ是一项关键的技术任务,HornetQ是一款开源的消息中间件,它提供了高效、可扩展和高可用性的消息传递服务。在.NET环境中与HornetQ进行交互,通常需要借助特定的客户端库,如Apache.NMS.Stomp。下面将...

    HornetQ2.1中文手册.7z

    4. **持久化与事务**:讨论消息的持久化机制,以及如何在HornetQ中使用JMS事务。 5. **集群与高可用性**:介绍如何配置HornetQ集群,实现消息的负载均衡和故障转移。 6. **安全性**:详细阐述HornetQ的安全配置,...

    hornetq-2.4.0.Final-bin.tar

    hornetq安装包, hornetq-2.4.0.Final-bin.tar 消息中间件 供项目中数据交互使用

    hornetq-2.2.5.Final.zip

    hornetq-2.2.5.Final.ziphornetq-2.2.5.Final.ziphornetq-2.2.5.Final.ziphornetq-2.2.5.Final.ziphornetq-2.2.5.Final.ziphornetq-2.2.5.Final.ziphornetq-2.2.5.Final.zip

    HornetQ集群配置

    HornetQ是一款高性能、可伸缩且开源的消息中间件,它被广泛用于构建分布式系统中的消息传递。在HornetQ中,集群配置是一种重要的特性,它允许多个HornetQ服务器形成一个集群,共享资源,提高可用性和可扩展性。本篇...

    hornetq-journal-2.3.19.Final.zip

    1. **HornetQ Journal**: HornetQ Journal是HornetQ消息服务器的重要组成部分,它负责存储和持久化消息。Journal提供了高可用性和故障恢复能力,即使在服务器崩溃或硬件故障后,也能确保消息不丢失。通过将消息数据...

    hornetq-transports-2.0.0.GA.jar

    hornetq-transports-2.0.0.GA.jar

    HornetQ Messaging Developer's Guide.pdf

    HornetQ是java开源实现的消息系统框架,性能上比ActiveQ要好一些,被集成到JBoss的消息服务中。 Table of Contents Preface 1 Chapter 1: Getting Started with HornetQ 9 Chapter 2: Setting Up HornetQ 31 ...

    HornetQ 2_1用户手册

    不但对非持久化消息的处理性能达到了非常高的性能。独特高效的日志(journal)使持久消息处理接近非持久消息的性能。 * 功能全面。不仅拥有其它成熟消息产品所具有的全部功能,而且还有很多独特的功能。 * ...

    hermes 监听hornetq JMS配置

    而Hermes则是一个开源的JMS管理工具,它提供了图形化的界面来管理和监控JMS服务器,包括HornetQ。 本文将详细介绍如何使用Hermes监听HornetQ的JMS配置,以便更好地管理和调试基于JMS的消息传递系统。 首先,要开始...

Global site tag (gtag.js) - Google Analytics