Apache ActiveMQ实战-基本安装配置与消息类型

Posted TGITCIC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache ActiveMQ实战-基本安装配置与消息类型相关的知识,希望对你有一定的参考价值。

ActiveMQ简介




ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。


ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ实现了JMS标准并提供了很多附加的特性。这些附加的特性包括,JMX管理(java Management Extensions,即java管理扩展),主从管理(master/salve,这是集群模式的一种,主要体现在可靠性方面,当主中介(代理)出现故障,那么从代理会替代主代理的位置,不至于使消息系统瘫痪)、消息组通信(同一组的消息,仅会提交给一个客户进行处理)、有序消息管理(确保消息能够按照发送的次序被接受者接收)。


ActiveMQ 支持JMS规范,ActiveMQ完全实现了JMS1.1规范。


JMS规范提供了同步消息和异步消息投递方式、有且仅有一次投递语义(指消息的接收者对一条消息必须接收到一次,并且仅有一次)、订阅消息持久接收等。如果仅使用JMS规范,表明无论您使用的是哪家厂商的消息代理,都不会影响到您的程序。


ActiveMQ整体架构


ActiveMQ主要涉及到5个方面:


  • 传输协议
消息之间的传递,无疑需要协议进行沟通,启动一个ActiveMQ打开了一个监听端口, ActiveMQ提供了广泛的连接模式,其中主要包括SSL、STOMP、XMPP;ActiveMQ默认的使用 的协议是openWire,端口号:61616;

  • 消息域
ActiveMQ主要包含Point-to-Point (点对点),Publish/Subscribe Model (发布/订阅者),其中在 Publich/Subscribe 模式下又有Nondurable subscription和       durable subscription (持久 化订阅)2种消息处理方式

  • 消息存储
在消息传递过程中,部分重要的消息可能需要存储到数据库或文件系统中,当中介崩溃时,信息不 回丢失

  • Cluster  (集群)
最常见到 集群方式包括network of brokers和Master Slave;

  • Monitor (监控)
ActiveMQ一般由jmx来进行监控;




ActiveMQ的安装配置


  1. 通过http://activemq.apache.org/download.html 下载:apache-activemq-5.13.3-bin.tar.gz 
  2. 把下载的该文件通过tar –zxvf apache-activemq-5.13.3-bin.tar.gz解压在当前目录
  3. 通过修改$ACTIVEMQ_HOME/conf/activemq.xml文件可以修改其配置
一般修改的其实也只有以下几个段:、


 <destinationPolicy>
            <policyMap>
              <policyEntries>

我们在此段増加配置如下:


<destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" >
                <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="50000"/>
                  </pendingMessageLimitStrategy>
               </policyEntry>
               <policyEntry queue=">" producerFlowControl="false" optimizedDispatch="true" memoryLimit=“2mb">
               </policyEntry>
              </policyEntries>
            </policyMap>
</destinationPolicy>

此处,我们使用的是”>”通配符,上述配置为每个队列、每个Topic配置了一个最大2mb的队列,并且使用了”optimizedDispatch=true”这个策略,该策略会启用优化了的消息分发器,直接减少消息来回时的上下文以加快消息分发速度。


找到下面这一段


 <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
 </persistenceAdapter>

为确保扩展配置既可以处理大量连接也可以处理海量消息队列,我们可以使用JDBC或更新更快的KahaDB消息存储。默认情况下ActiveMQ使用KahaDB消息存储。


ActiveMQ支持三种持久化策略:AMQ、KAHADB、JDBC


  • AMQ 它是一种文件存储形式,具有写入快、容易恢复的特点,采用这种方式持久化消息会被存储在一个个文件中,每个文件默认大小为32MB,如果一条消息超过32MB,那么这个值就需要设大。当一个文件中所有的消息被“消费”掉了,那么这文件会被置成“删除”标志,并且在下一个清除开始时被删除掉。


  • KAHADB,相比AMQ来説,KAHADB速度没有AMQ快,可是KAHADB具有极强的垂直和横向扩展能力,恢复时间比AMQ还要短,因此从5.4版后ActiveMQ默认使用KAHADB作为其持久化存储。而且在作MQ的集群时使用KAHADB可以做到Cluster+Master Slave的这样的完美高可用集群方案。


  • JDBC,即ActiveMQ默认可以支持把数据持久化到DB中,如:mysql、ORACLE等。

以上是关于Apache ActiveMQ实战-基本安装配置与消息类型的主要内容,如果未能解决你的问题,请参考以下文章

linux下activemq安装与配置

ActiveMQ安装与配置

ActiveMQ Part 1 : 基本安装配置(windows 版本)

ActiveMQ的安装与配置

ActiveMQ——ActiveMQ的安装和基本使用

activemq的配置与结合spring使用