`
zhb8015
  • 浏览: 380011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

ActiveMQ 基本配置

阅读更多

简介

上一篇http://www.javaeye.com/topic/15317介绍了ActiveMQ5.0的安装,这一篇将介绍的配置。ActiveMQ包含了很多features(详见http://activemq.apache.org/features.html ),   
不同的需求,不同的环境,需要不同的features,当然需要不同的配置。在这里我只写了最基本的配置,算是抛砖了,希望引出更多关于ActiveMQ的高级配置。
假设已经正确安装ActiveMQ5.0,同时及其IP地址为192.168.1.148,具体使用时可以改为自己的IP。下面讲解的配置实现的features如下:

  1. 客户端可以通过tcp://192.168.1.148连接ActiveMQ。
  2. 消息持久化保存,重启服务器不会丢失消息。
  3. 可以通过http://192.168.1.148:8161/admin监控ActiveMQ服务器

配置

ActiveMQ默认使用的是XML格式配置,从4.0版本开始用MBean的方式实现XML配置,配置文件在${activemq.home}/conf目录下,文件名为activemq.xml。最新的默认配置见
http://svn.apache.org/repos/asf/activemq/trunk/assembly/src/release/conf/activemq.xml 。下面为本篇文章使用的配置,及重要部分的解释。

 

Xml代码 复制代码
  1. <beans  
  2.   xmlns="http://www.springframework.org/schema/beans"  
  3.   xmlns:amq="http://activemq.org/config/1.0"  
  4.   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  
  5.   http://activemq.org/config/1.0 http://activemq.apache.org/schema/activemq-core.xsd  
  6.   http://activemq.apache.org/camel/schema/spring>  
  7.    
  8.   <!-- persistent="true"表示要持久化存储消息,和子元素persistenceAdapter结合使用 -->  
  9.   <!-- dataDirectory默认的存储持久化数据的目录 -->  
  10.   <!-- brokerName 设置broker的name,在注意在网络上必须是唯一的-->  
  11.   <!-- 更多参考http://activemq.apache.org/xbean-xml-reference-50.html#XBeanXMLReference5.0-brokerelement -->  
  12.   <broker xmlns="http://activemq.org/config/1.0" brokerName="192.168.1.148" persistent ="true" dataDirectory="${activemq.base}/data" useShutdownHook="false">  
  13.    
  14.     <!-- Destination specific policies using destination names or wildcards -->  
  15.     <!-- wildcards意义见http://activemq.apache.org/wildcards.html -->  
  16.     <destinationPolicy>  
  17.       <policyMap>  
  18.         <policyEntries>  
  19.        <!-- 这里使用了wildcards,表示所有以EUCITA开头的topic -->  
  20.           <policyEntry topic="EUCITA.>" producerFlowControl="false" memoryLimit="10mb">  
  21.             <!-- 分发策略 -->  
  22.         <dispatchPolicy>  
  23.           <!-- 按顺序分发 -->  
  24.               <strictOrderDispatchPolicy/>  
  25.             </dispatchPolicy>  
  26.         <!--  恢复策略-->  
  27.             <subscriptionRecoveryPolicy>  
  28.           <!-- 只恢复最后一个message -->  
  29.               <lastImageSubscriptionRecoveryPolicy/>  
  30.             </subscriptionRecoveryPolicy>  
  31.           </policyEntry>  
  32.         </policyEntries>  
  33.       </policyMap>  
  34.     </destinationPolicy>  
  35.   
  36.     <!-- The transport connectors ActiveMQ will listen to -->  
  37.     <transportConnectors>  
  38.        <transportConnector name="openwire" uri="tcp://192.168.1.148:61616" discoveryUri="multicast://default"/>  
  39.        <transportConnector name="ssl"     uri="ssl://192.168.1.148:61617"/>  
  40.        <transportConnector name="stomp"   uri="stomp://192.168.1.148:61613"/>  
  41.        <transportConnector name="xmpp"    uri="xmpp://192.168.1.148:61222"/>  
  42.     </transportConnectors>  
  43.      
  44.     <!-- 消息持久化方式 -->  
  45.     <persistenceAdapter>  
  46.       <amqPersistenceAdapter directory="${activemq.base}/data"/>  
  47.     </persistenceAdapter>  
  48. </broker>  
  49.   
  50.   <!-- lets create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic -->  
  51.     <commandAgent xmlns="http://activemq.org/config/1.0"/>  
  52.     
  53.   <!-- An embedded servlet engine for serving up the Admin console -->  
  54.   <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">  
  55.     <connectors>  
  56.       <nioConnector port="8161" />  
  57.     </connectors>  
  58.   
  59.     <handlers>  
  60.       <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true" />       
  61.       <webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true" />         
  62.     </handlers>  
  63.   </jetty>   
  64. </beans>  
[xml] view plaincopy
 
  1. <beans  
  2.   xmlns="http://www.springframework.org/schema/beans"  
  3.   xmlns:amq="http://activemq.org/config/1.0"  
  4.   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  
  5.   http://activemq.org/config/1.0 http://activemq.apache.org/schema/activemq-core.xsd  
  6.   http://activemq.apache.org/camel/schema/spring>  
  7.    
  8.   <!-- persistent="true"表示要持久化存储消息,和子元素persistenceAdapter结合使用 -->  
  9.   <!-- dataDirectory默认的存储持久化数据的目录 -->  
  10.   <!-- brokerName 设置broker的name,在注意在网络上必须是唯一的-->  
  11.   <!-- 更多参考http://activemq.apache.org/xbean-xml-reference-50.html#XBeanXMLReference5.0-brokerelement -->  
  12.   <broker xmlns="http://activemq.org/config/1.0" brokerName="192.168.1.148" persistent ="true" dataDirectory="${activemq.base}/data" useShutdownHook="false">  
  13.    
  14.     <!-- Destination specific policies using destination names or wildcards -->  
  15.     <!-- wildcards意义见http://activemq.apache.org/wildcards.html -->  
  16.     <destinationPolicy>  
  17.       <policyMap>  
  18.         <policyEntries>  
  19.        <!-- 这里使用了wildcards,表示所有以EUCITA开头的topic -->  
  20.           <policyEntry topic="EUCITA.>" producerFlowControl="false" memoryLimit="10mb">  
  21.             <!-- 分发策略 -->  
  22.         <dispatchPolicy>  
  23.           <!-- 按顺序分发 -->  
  24.               <strictOrderDispatchPolicy/>  
  25.             </dispatchPolicy>  
  26.         <!--  恢复策略-->  
  27.             <subscriptionRecoveryPolicy>  
  28.           <!-- 只恢复最后一个message -->  
  29.               <lastImageSubscriptionRecoveryPolicy/>  
  30.             </subscriptionRecoveryPolicy>  
  31.           </policyEntry>  
  32.         </policyEntries>  
  33.       </policyMap>  
  34.     </destinationPolicy>  
  35.   
  36.     <!-- The transport connectors ActiveMQ will listen to -->  
  37.     <transportConnectors>  
  38.        <transportConnector name="openwire" uri="tcp://192.168.1.148:61616" discoveryUri="multicast://default"/>  
  39.        <transportConnector name="ssl"     uri="ssl://192.168.1.148:61617"/>  
  40.        <transportConnector name="stomp"   uri="stomp://192.168.1.148:61613"/>  
  41.        <transportConnector name="xmpp"    uri="xmpp://192.168.1.148:61222"/>  
  42.     </transportConnectors>  
  43.      
  44.     <!-- 消息持久化方式 -->  
  45.     <persistenceAdapter>  
  46.       <amqPersistenceAdapter directory="${activemq.base}/data"/>  
  47.     </persistenceAdapter>  
  48. </broker>  
  49.   
  50.   <!-- lets create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic -->  
  51.     <commandAgent xmlns="http://activemq.org/config/1.0"/>  
  52.     
  53.   <!-- An embedded servlet engine for serving up the Admin console -->  
  54.   <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">  
  55.     <connectors>  
  56.       <nioConnector port="8161" />  
  57.     </connectors>  
  58.   
  59.     <handlers>  
  60.       <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true" />       
  61.       <webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true" />         
  62.     </handlers>  
  63.   </jetty>   
  64. </beans>  

注释

关于XML配置中元素的具体信息可以参考http://activemq.apache.org/xbean-xml-reference-50.html 下面介绍本篇配置使用的一些重要元素。

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.0使用AMQ Message Store 持久化消息,这种方式提供了很好的性能(The AMQ Message Store is an embeddable transactional message storage solution that is extremely fast and reliable.) 默认使用该存储方式即可,如果想使用JDBC来存储,可以查找文档配置。 

Summary

本篇文章只提供了基本配置信息。如果需要更多的文章,可以查看ActiveMQ的文档。

讲了安装和简单的配置,下一篇将介绍和Sping的整合,以及多个queue,多个topic,多个producer,多个consumer的配置,使用。

 

 

分享到:
评论

相关推荐

    ActiveMQ基本使用与优化

    JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(Java Database Connectivity),提供了应用程序之间异步通信的功能。 本文档介绍ActiveMQ的基本使用和部分性能优化。

    activeMQ示例 activeMQ demo,java分布式技术

    本教程旨在帮助activeMQ初学者入门,通过本示例,能完全理解activeMQ的基本概念,为分布式应用打下基础。 本示例中,使用maven管理,完美解决各种依赖问题,不需要自行配置,导入项目等待eclipse自行下载jar包后即可...

    activeMQ 入门级demo

    +conf (activeMQ配置目录,包含最基本的activeMQ配置文件) +data (默认是空的) +docs (index,replease版本里面没有文档,-.-b不知道为啥不带) +example (几个例子 +lib (activemMQ使用到的lib) -apache-...

    ActiveMQ_in_Action.doc

    +conf (activeMQ配置目录,包含最基本的activeMQ配置文件) +data (默认是空的) +docs (index,replease版本里面没有文档,-.-b不知道为啥不带) +example (几个例子 +lib (activemMQ使用到的lib) -apache-activemq...

    ActiveMQ.rar

    n 二: ActiveMQ安装和基本使用 包括:通过源码安装、基本的配置示例、启动、测试运行、关闭等 n 三:理解和掌握JMS 包括:基本概念、消息结构、可靠性机制、PTP、Pub/Sub、API结构、JMS应用开 发的基本步骤、持久和...

    逆向工程极速搭建SSM-Redis-activeMQ-Quartz整合项目

    一键生成webXml、initXml、contextXml等系统配置文件 配置控制生成输出文件(listenter、filter、quartz、activeMQ、redis、webXml、initXml、contextXml) 项目可统计在线人数,无操作超时退出,监听网络请求,...

    SSH整合配置

    集成SSH框架的系统从职责上分为...具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate。

    Spring+JMS+ActiveMQ+Tomcat实现消息服务_服务器应用

    下面通过学习与配置,实现消息服务的基本功能:发送与接收。Spring对JMS提供了很好的支持,可以通过JmsTemplate来方便地实现消息服务。这里,我们的消息服务不涉及事务管理。下面简单说明实例。

    ActiveMq由浅入深讲解+面试题50道讲解

    内容包括MQ概述和工作流程,启动过程与启动异常分析,消息的基本模型,基于队列的生产者和消费者,基于发布-订阅的生产者和消费者,消息的同步消费和异步消费,消息的数据类型,身份认证,持久化配置与实现,...

    docker-wso2-dev-srv:一组Docker脚本,可用于使用WSO2和其他产品(如ActiveMQ,Qpid,RabbitMQ,监视工具等)为(微)服务开发目的而组成SystemsArchitectures容器布局

    货柜每个WSO2容器未更改的配置/功能是: Log4j配置Admin Web Carbon Console的用户/密码H2数据库这个想法是创建几个基本的docker镜像,我们可以在其中组合复杂的架构来实现(微)服务。 然后,可用于创建基本docker...

    jun_ssm_springboot:jun_spring_plugin基于Spring家族的全面整合(含Spring、SpringBoot、SpringCloud等不同维度通过Bean兼容其他开发组件),基本覆盖开发用九成以上的场景,即开即用;目前已集成ActiveMQ、CORS、Dubbo、JPA、Hibernate、CAS、Activiti、Redis、Shiro、SSH、SSM等等

    jun_spring 项目项目说明基于Spring家族的360度整合,基本覆盖开发用九成以上的场景,即开即用,主要是详尽的了解项目里面的每个stater跟lib组件及功能,为个人及项目实际开发提供助力,帮组项目快速开发,本项目是...

    Java思维导图xmind文件+导出图片

    分布式架构的基本理论CAP、BASE以及其应用 什么是分布式架构下的高可用设计 构架高性能的分布式架构 构建分布式架构最重要因素 CDN静态文件访问 分布式存储 分布式搜索引擎 应用发布与监控 应用容灾及机房...

    springboot整合版

    springboot简介,springboot入门代码实例,热部署,以及配置原理,springboot对mybatis,c3p0,springdata,junit,freeMarker,redis,solr,activeMQ,springboot部署,对于刚接触的springboot微服务框架,熟悉这个文档,基本上...

    信用:springboot + vue实现的短信验证码demo

    意在让大家熟悉短信验证码登录实现的基本思路进度2020/4/6项目基础环境的建造2020/4/6 redis的整合2020/4/6 activemq的整合2020/4/6阿里大于短信的整合2020/4/6使用postman进行测试2020/4/6登陆接口的完成使用各位...

    网络架构师148讲视频课程

    │ 第32节:Nginx的进程结构、基本配置.avi │ 第33节:Nginx常用核心模块指令.avi │ 第34节:Nginx的Http模块部分的指令.avi │ 第35节:Nginx的Location区段.avi │ 第36节:Nginx的反向代理模块.avi │ 第37节:...

    单点登录源码

    ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | ...

    Spring in Action(第2版)中文版

    10.1.3在spring中安装activemq 10.2协同使用jms和spring 10.2.1处理冗长失控的jms代码 10.2.2使用jms模板 10.2.3转换消息 10.2.4将spring的网关支持类应用于jms 10.3创建消息驱动pojo 10.3.1创建消息监听器 ...

    Spring in Action(第二版 中文高清版).part2

    10.1.3 在Spring中安装ActiveMQ 10.2 协同使用JMS和Spring 10.2.1 处理冗长失控的JMS代码 10.2.2 使用JMS模板 10.2.3 转换消息 10.2.4 将Spring的网关支持类应用于JMS 10.3 创建消息驱动POJO 10.3.1 创建...

    Spring in Action(第二版 中文高清版).part1

    10.1.3 在Spring中安装ActiveMQ 10.2 协同使用JMS和Spring 10.2.1 处理冗长失控的JMS代码 10.2.2 使用JMS模板 10.2.3 转换消息 10.2.4 将Spring的网关支持类应用于JMS 10.3 创建消息驱动POJO 10.3.1 创建...

    javaapp:监视Java应用程序

    通过jmx监视基于Java的应用程序,例如Tomcat,JBoss,ActiveMQ。 提供有关堆内存分配,GC活动和log4j日志的图表和警报。 为PROD和devops环境提供广泛的监视和日志记录 资料下载 阅读以获取基本的App安装说明阅读以...

Global site tag (gtag.js) - Google Analytics