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中不同的分发策略(避免翻译了以后误解,这里用原文):
- <roundRobinDispatchPolicy>:Simple dispatch policy that sends a message to every subscription that matches the message.
- <simpleDispatchPolicy>:Simple dispatch policy that sends a message to every subscription that matches the message.
- <strictOrderDispatchPolicy>:Dispatch policy that causes every subscription to see messages in the same order.
SubscriptionRecoveryPolicy
ActiveMQ支持6种恢复策略,可以自行选择使用不同的策略
- <fixedCountSubscriptionRecoveryPolicy>: keep a fixed count of last messages.
- <fixedSizedSubscriptionRecoveryPolicy>: keep a fixed amount of memory available in RAM for message history which is evicted in time order.
- <lastImageSubscriptionRecoveryPolicy>:only keep the last message.
- <noSubscriptionRecoveryPolicy>:disable recovery of messages.
- <queryBasedSubscriptionRecoveryPolicy>:perform a user specific query mechanism to load any messages they may have missed.
- <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学习"的完整例子中,你可以通过编写Java代码来创建生产者和消费者,实践发送和接收消息,了解消息的生命周期和状态。同时,通过配置不同的参数,体验ActiveMQ的灵活性和强大功能。例如,你可以创建一个...
3. **多种持久化机制**:ActiveMQ提供了多种持久化选项,如文件系统、数据库(如JDBC)和LevelDB等,以确保即使在服务器宕机后也能恢复消息。 4. **丰富的管理工具**:ActiveMQ提供了一个基于Web的管理控制台,用户...
这个压缩包文件包含了一系列与ActiveMQ学习相关的资源,包括案例代码、案例说明文档和技术总结文档,非常适合初学者和进阶者深入理解和实践ActiveMQ。 1. **ActiveMQ基础概念** - **消息队列**:ActiveMQ的核心是...
**ActiveMQ 学习指南** ActiveMQ 是一款开源的消息中间件,它基于 Java Message Service (JMS) 规范,提供了可靠的消息传递功能,适用于分布式系统中的应用间通信。作为一个专业的 IT 从业者,理解并掌握 ActiveMQ ...
activemq学习心得 activemq是Apache软件基金会所研发的开放源代码消息队列iddleware,主要用来实现异步消息处理、解耦合和扩展系统。以下是activemq学习心得的知识点总结: 一、activemq配置文件 activemq的配置...
Spring Boot ActiveMQ学习练习demo项目源码是一个针对Java开发者的学习资源,它涵盖了使用Spring Boot集成ActiveMQ进行消息队列操作的基本实践。ActiveMQ是Apache软件基金会的一个开源项目,它是Java消息服务(JMS)...
这篇"ActiveMQ学习笔记之九--发送消息到队列中"主要探讨的是如何通过编程方式向ActiveMQ队列发送消息,这对于理解和应用消息中间件至关重要。 首先,我们要理解ActiveMQ中的队列(Queue)概念。队列是一种先进先出...
在本篇ActiveMQ学习笔记中,我们将探讨如何通过纯代码方式启动一个嵌入式的Broker,这对于测试、开发或者快速原型构建非常有用。ActiveMQ是一个开源的消息代理,它遵循Java消息服务(JMS)规范,提供了高可靠性的...
工作学习-消息中间件ActiveMQ学习总结 本文总结了消息中间件ActiveMQ的学习要点,涵盖了为什么使用消息中间件、消息中间件的组成、JMS规范、ActiveMQ简介、消息中间件的应用场景等方面。 一、为什么使用消息中间件...
本教程将引导你迈入ActiveMQ学习之旅的第一步,帮助你理解其核心概念和基本操作。 1. **ActiveMQ简介** Apache ActiveMQ是一个完全支持JMS 1.1和JMS 2.0规范的消息代理,它允许应用程序通过发送和接收消息来解耦...
**ActiveMQ学习笔记之一——ActiveMQ下载** ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它是基于Java消息服务(JMS)规范的,用于在分布式系统中传递消息。作为一个高性能、可伸缩且可靠的解决方案,...
#### 三、JMS的主要组件 JMS的核心组件包括: 1. **连接工厂 (Connection Factory)** - 用于创建连接的对象,例如,在使用ActiveMQ时,通常使用`ActiveMQConnectionFactory`创建连接。 2. **连接 (Connection)** -...
标题 "activemq学习(2) spring+activemq" 暗示了这篇内容将探讨如何在Spring框架中集成ActiveMQ,一个流行的开源消息代理和消息中间件。ActiveMQ允许应用程序之间通过消息传递进行通信,而Spring则是一个广泛使用...
在开始安装和学习ActiveMQ之前,了解其基本概念是非常重要的。消息中间件(如ActiveMQ)的主要任务是作为生产者和消费者之间的代理,通过存储和转发消息来解耦应用程序。JMS是Java平台的标准接口,用于在分布式环境...
8. **事务处理**:学习如何在ActiveMQ中使用JMS事务确保消息的一致性和可靠性。 9. **性能监控**:ActiveMQ提供了一套强大的监控工具,包括Web控制台,可以用来查看消息的发送、接收和堆积情况,帮助优化系统性能。...
activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子...
### 消息队列Activemq学习笔记 #### MQ入门概述 消息队列(Message Queue,简称MQ)是一种用于在应用程序之间传递数据的机制。它允许应用之间通过发送消息进行通信,而无需直接调用对方。 ##### 前言:MQ=消息...
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 学习笔记 #### 一、ActiveMQ简介与安装 ##### 1.1 ActiveMQ概述 Apache ActiveMQ 是一个完全支持 JMS 1.1 和 J2EE 1.4 规范的消息服务器。它适用于 Java 消息服务 (JMS),并且是一个开源项目...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递标准(JMS,...对于毕业设计论文和计算机案例研究,ActiveMQ源代码是一个很好的学习和分析对象,帮助理解消息中间件的工作原理和实现细节。