`

activeMQ学习三

阅读更多

activeMQ的配置文件在/path/to/activemq/conf目录下面。

我的电脑上就在D:\apache-activemq-5.5.1\conf目录下,文件是activeMQ.xml。打开此文件:

 

<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.org/config/1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.org/config/1.0 http://activemq.apache.org/schema/activemq-core.xsd
  http://activemq.apache.org/camel/schema/spring>
<!-- Allows us to use system properties as variables in this configuration file 
	在此配置文件中允许使用系统属性文件作为参数,即	
credentials.properties这个属性文件里存放一些参数,供此配置文件动态调用。
  -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.base}/conf/credentials.properties</value>
        </property>      
    </bean>
   <!-- persistent="true"表示要持久化存储消息,和子元素persistenceAdapter结合使用 -->
   <!-- dataDirectory默认的存储持久化数据的目录 -->    <!-- brokerName 设置broker的name,在注意在网络上必须是唯一的-->
   <!--destroyApplicationContextOnStop="true" 表示当程序失效时是否需要停止-->
   <!-- 更多参考http://activemq.apache.org/xbean-xml-reference-50.html#XBeanXMLReference5.0-brokerelement -->
  <broker xmlns="http://activemq.org/config/1.0" brokerName="192.168.1.148" persistent ="true" 
       dataDirectory="${activemq.base}/data" useShutdownHook="false">
    <!-- Destination specific policies using destination names or wildcards -->
    <!-- wildcards意义见http://activemq.apache.org/wildcards.html -->
    <destinationPolicy>
      <policyMap>
        <policyEntries>
       <!-- 这里使用了wildcards,表示所有以EUCITA开头的topic -->
          <policyEntry topic="EUCITA.>" producerFlowControl="false" memoryLimit="10mb">
            <!-- 分发策略 -->
        <dispatchPolicy>
          <!-- 按顺序分发 -->
              <strictOrderDispatchPolicy/>
            </dispatchPolicy>
        <!--  恢复策略-->
            <subscriptionRecoveryPolicy>
          <!-- 只恢复最后一个message -->
              <lastImageSubscriptionRecoveryPolicy/>
            </subscriptionRecoveryPolicy>
          </policyEntry>
        </policyEntries>
      </policyMap>
    </destinationPolicy>

    <!-- The transport connectors ActiveMQ will listen to -->
    <transportConnectors>
       <transportConnector name="openwire" uri="tcp://192.168.1.148:61616" discoveryUri="multicast://default"/>
    </transportConnectors>
   
    <!-- 消息持久化方式 -->
    <persistenceAdapter>
      <amqPersistenceAdapter directory="${activemq.base}/data"/>
    </persistenceAdapter>
</broker>

  <!-- lets create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic -->
    <commandAgent xmlns="http://activemq.org/config/1.0"/>
  
  <!-- An embedded servlet engine for serving up the Admin console -->
  <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">
    <connectors>
      <nioConnector port="8161" />
    </connectors>

    <handlers>
      <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true" />     
      <webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true" />       
    </handlers>
  </jetty> 
</beans>





 

在这里重点讲解几个属性:

DispathPolicy

 

ActiveMQ支持3中不同的分发策略(避免翻译了以后误解,这里用原文):

  1. <roundRobinDispatchPolicy>:Simple dispatch policy that sends a message to every subscription that matches the message.
  2. <simpleDispatchPolicy>:Simple dispatch policy that sends a message to every subscription that matches the message.
  3. <strictOrderDispatchPolicy>:Dispatch policy that causes every subscription to see messages in the same order.

SubscriptionRecoveryPolicy

ActiveMQ支持6种恢复策略,可以自行选择使用不同的策略

  1. <fixedCountSubscriptionRecoveryPolicy>: keep a fixed count of last messages.
  2. <fixedSizedSubscriptionRecoveryPolicy>: keep a fixed amount of memory available in RAM for message history which is evicted in time order.
  3. <lastImageSubscriptionRecoveryPolicy>:only keep the last message.
  4. <noSubscriptionRecoveryPolicy>:disable recovery of messages.
  5. <queryBasedSubscriptionRecoveryPolicy>:perform a user specific query mechanism to load any messages they may have missed.
  6. <timedSubscriptionRecoveryPolicy>:keep a timed buffer of messages around in memory and use that to recover new subscriptions.

PersistenceAdapter

http://activemq.apache.org/persistence 讲解了关于persistence的信息。ActiveMQ5.5.1使用AMQ Message Store 持久化消息,这种方式提供了很好的性能(The AMQ Message Store is an embeddable transactional message storage solution that is extremely fast and reliable.) 默认使用该存储方式即可,如果想使用JDBC来存储,可以查找文档配置。

 

这里只是讲解核心配置文件大概,具体细节并没有详解,而activeMQ的配置文件是要根据实际情况来配置的,以下通过一个实例

服务端(Shared File SystemMaster Slave)+ 客户端(failover transport)
来具体分析activeMQ该如何配置。

 

分享到:
评论

相关推荐

    ActiveMQ学习 完整例子

    在"ActiveMQ学习"的完整例子中,你可以通过编写Java代码来创建生产者和消费者,实践发送和接收消息,了解消息的生命周期和状态。同时,通过配置不同的参数,体验ActiveMQ的灵活性和强大功能。例如,你可以创建一个...

    activeMQ学习

    3. **多种持久化机制**:ActiveMQ提供了多种持久化选项,如文件系统、数据库(如JDBC)和LevelDB等,以确保即使在服务器宕机后也能恢复消息。 4. **丰富的管理工具**:ActiveMQ提供了一个基于Web的管理控制台,用户...

    activeMQ学习资料

    这个压缩包文件包含了一系列与ActiveMQ学习相关的资源,包括案例代码、案例说明文档和技术总结文档,非常适合初学者和进阶者深入理解和实践ActiveMQ。 1. **ActiveMQ基础概念** - **消息队列**:ActiveMQ的核心是...

    ActiveMQ的学习

    **ActiveMQ 学习指南** ActiveMQ 是一款开源的消息中间件,它基于 Java Message Service (JMS) 规范,提供了可靠的消息传递功能,适用于分布式系统中的应用间通信。作为一个专业的 IT 从业者,理解并掌握 ActiveMQ ...

    activemq学习心得.docx

    activemq学习心得 activemq是Apache软件基金会所研发的开放源代码消息队列iddleware,主要用来实现异步消息处理、解耦合和扩展系统。以下是activemq学习心得的知识点总结: 一、activemq配置文件 activemq的配置...

    spring boot ActiveMQ学习练习demo项目源码

    Spring Boot ActiveMQ学习练习demo项目源码是一个针对Java开发者的学习资源,它涵盖了使用Spring Boot集成ActiveMQ进行消息队列操作的基本实践。ActiveMQ是Apache软件基金会的一个开源项目,它是Java消息服务(JMS)...

    ActiveMQ学习笔记之九--发送消息到队列中

    这篇"ActiveMQ学习笔记之九--发送消息到队列中"主要探讨的是如何通过编程方式向ActiveMQ队列发送消息,这对于理解和应用消息中间件至关重要。 首先,我们要理解ActiveMQ中的队列(Queue)概念。队列是一种先进先出...

    ActiveMQ学习笔记之四--启动嵌入式Broker(纯代码方式)

    在本篇ActiveMQ学习笔记中,我们将探讨如何通过纯代码方式启动一个嵌入式的Broker,这对于测试、开发或者快速原型构建非常有用。ActiveMQ是一个开源的消息代理,它遵循Java消息服务(JMS)规范,提供了高可靠性的...

    工作学习-消息中间件activeMQ学习总结

    工作学习-消息中间件ActiveMQ学习总结 本文总结了消息中间件ActiveMQ的学习要点,涵盖了为什么使用消息中间件、消息中间件的组成、JMS规范、ActiveMQ简介、消息中间件的应用场景等方面。 一、为什么使用消息中间件...

    activemq学习入门第一步

    本教程将引导你迈入ActiveMQ学习之旅的第一步,帮助你理解其核心概念和基本操作。 1. **ActiveMQ简介** Apache ActiveMQ是一个完全支持JMS 1.1和JMS 2.0规范的消息代理,它允许应用程序通过发送和接收消息来解耦...

    ActiveMQ学习笔记之一--ActiveMQ下载

    **ActiveMQ学习笔记之一——ActiveMQ下载** ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它是基于Java消息服务(JMS)规范的,用于在分布式系统中传递消息。作为一个高性能、可伸缩且可靠的解决方案,...

    JMS_ActiveMQ交流学习

    #### 三、JMS的主要组件 JMS的核心组件包括: 1. **连接工厂 (Connection Factory)** - 用于创建连接的对象,例如,在使用ActiveMQ时,通常使用`ActiveMQConnectionFactory`创建连接。 2. **连接 (Connection)** -...

    activemq学习(2) spring+activemq

    标题 "activemq学习(2) spring+activemq" 暗示了这篇内容将探讨如何在Spring框架中集成ActiveMQ,一个流行的开源消息代理和消息中间件。ActiveMQ允许应用程序之间通过消息传递进行通信,而Spring则是一个广泛使用...

    ActiveMQ安装包及学习资料.相当经典

    在开始安装和学习ActiveMQ之前,了解其基本概念是非常重要的。消息中间件(如ActiveMQ)的主要任务是作为生产者和消费者之间的代理,通过存储和转发消息来解耦应用程序。JMS是Java平台的标准接口,用于在分布式环境...

    activeMQ收发工具.rar

    8. **事务处理**:学习如何在ActiveMQ中使用JMS事务确保消息的一致性和可靠性。 9. **性能监控**:ActiveMQ提供了一套强大的监控工具,包括Web控制台,可以用来查看消息的发送、接收和堆积情况,帮助优化系统性能。...

    activeMq的一个小例子

    activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子...

    消息队列activemq学习笔记

    ### 消息队列Activemq学习笔记 #### MQ入门概述 消息队列(Message Queue,简称MQ)是一种用于在应用程序之间传递数据的机制。它允许应用之间通过发送消息进行通信,而无需直接调用对方。 ##### 前言:MQ=消息...

    Jms 之 ActiveMQ学习资料

    3. 解压安装包:`tar xvfz apache-activemq-5.2.0-bin.tar`。 4. 给解压后的目录赋予执行权限:`chmod –R 777 apache-activemq-5.2.0`。 5. 进入bin目录并启动ActiveMQ:`cd apache-activemq-5.2.0/bin`,然后运行 ...

    Apache ActiveMQ学习笔记【原创:mq的方式有两种:点到点和发布/订阅】

    ### Apache ActiveMQ 学习笔记 #### 一、ActiveMQ简介与安装 ##### 1.1 ActiveMQ概述 Apache ActiveMQ 是一个完全支持 JMS 1.1 和 J2EE 1.4 规范的消息服务器。它适用于 Java 消息服务 (JMS),并且是一个开源项目...

    activemq

    通过上述内容的学习,我们可以了解到 ActiveMQ-CPP 提供了丰富的功能来支持 C++ 开发者进行消息队列的开发。无论是对于初学者还是有经验的开发者来说,理解这些概念都是非常重要的。掌握了 CMS 的基本原理和 ...

Global site tag (gtag.js) - Google Analytics