`
stevezheng
  • 浏览: 80167 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Active MQ的配置和使用

阅读更多
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  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.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <!-- Allows us to use system properties as variables in this configuration file -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.base}/conf/credentials.properties</value>
        </property>      
    </bean>

    <!-- The <broker> element is used to configure the ActiveMQ broker. -->
    
    <!-- brokerName:必须定义一个名称 -->
    <!-- 不使用持久化存储:persistent="false",注意:内存要足够大 -->
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="testBroker" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" persistent="true">
 
              
        <destinationPolicy>
            <policyMap>
              <policyEntries>
              <!-- 如果设定了<systemUsage>,则全局按照<systemUsage>,这里精细控制每一个q -->
              <!-- 设定了flowcontrol以后,会根据memorylimit的缓冲区设定的大小,决定producer的流速,即:可能拖慢producer -->
              <!-- 设定flowcontrol false后(同时不设定systemUsage),虽然不会拖慢producer,但是可能会占用大量activemq的内存,如果处理仍然不及时,可能最终导致amq outofmemory -->
              <!-- 参考下面<systemUsage>的说明 -->
              <!-- 设定了false以后,表示producer直接都给,直到撑死systemUsage,才报客户端Exception -->
                <policyEntry topic=">" producerFlowControl="false" topicPrefetch="1000" useCache="true">
                  <pendingSubscriberPolicy>
                    <vmCursor />
                  </pendingSubscriberPolicy>
                </policyEntry>
                
                <!-- 设定true,表示超过memoryLimit以后,就等,等到systemUsage设定的超时时间报Exception -->
                <!-- 尽管可以让systemUsage统一管理全部的,但也就失去了精细管理每一个队列的能力,如果队列有重要和不重要之分,即:有的允许丢数据的,就设定true和memoryLimit;有的不允许的,就单独设定 -->
                <!-- 关于amq的特殊检测参数也在这里设定,参见http://activemq.apache.org/advisory-message.html -->
                <!-- queuePrefetch:一次分配给consumer多少数量的消息 -->
                <policyEntry queue=">" producerFlowControl="true" memoryLimit="4mb" queuePrefetch="1000" useCache="true">
                  <!-- Use VM cursor for better latency
                       For more information, see:
                       
                       http://activemq.apache.org/message-cursors.html
                       
                  <pendingQueuePolicy>
                    <vmQueueCursor/>
                  </pendingQueuePolicy>
                  -->
                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy> 
 
        
        <!-- 设定jmx管理端口 -->
        <managementContext>
            <managementContext connectorPort="62222" jmxDomainName="testDomain" createConnector="true"/>
        </managementContext>

        <!-- 设定持久化方案 -->
        <persistenceAdapter>
            <!-- 稳定性最强的一个 -->
            <!-- <amqPersistenceAdapter useNIO="true" directory="target/Broker2-data/activemq-data" syncOnWrite="true" indexPageSize="16kb" persistentIndex="true" indexMaxBinSize="100" maxFileLength="10mb" maxCheckpointMessageAddSize="32kb" cleanupInterval="3000" checkpointInterval="20000" /> -->
            <!-- 对于恢复来说,这个存储不能保证完全不丢数据。它比一般存储的快50% -->
            <kahaDB directory="${activemq.base}/data/kahadb" />
        </persistenceAdapter>
        
        
          <!-- System Usage 对整个的broker做全局设定-->
		  <!-- 使用systemUsage,以后,如果参数值设定不当,可能导致整个的q停止相应 -->
		  <!-- 好的办法是:设定systemUsage,同时设定sendFailIfNoSpaceAfterTimeout(多长时间后超时),这个超时信息会返回给producer。这样即不会让amq被撑死,有能够保证producer不被拖死 -->
		  <systemUsage>
            <systemUsage sendFailIfNoSpaceAfterTimeout="1000">
                <memoryUsage>
                    <memoryUsage limit="32 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="5 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="100 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>
        
        <!-- 定义连接方式,注意如果只监听内网ip,需要指定IP地址 -->
        <!-- 可以指定热备等,使用failover -->
        <transportConnectors>
            <transportConnector name="manzuoopenwire" uri="tcp://0.0.0.0:63333"/>
        </transportConnectors>

        <!-- 对于broker,可以设定认证 -->
        <!--
        <plugins>
            <simpleAuthenticationPlugin>
                <users>
                    <authenticationUser username="admin" password="password" groups="admins,publishers,consumers"/>
                    <authenticationUser username="publisher" password="password" groups="publishers,consumers"/>
                    <authenticationUser username="consumer" password="password" groups="consumers"/>
                    <authenticationUser username="guest" password="password" groups="guests"/>
                </users>
            </simpleAuthenticationPlugin>
        </plugins>
        -->
    </broker>
    
    
    <!-- 可以设定web 管理界面 -->
    <import resource="jetty.xml"/>
</beans>

 

另外,有一个满座网关于amq的培训ppt,有需要的可以拿去~~

0
5
分享到:
评论

相关推荐

    Apache Active MQ 简单的示例

    首先,我们需要配置JMS连接工厂,创建一个到Active MQ服务器的连接,然后创建会话和目的地(队列或主题),最后创建生产者和消费者。生产者用于发送消息,而消费者用于接收消息。这个示例可能涵盖了Active MQ的基本...

    Active MQ in action 教程

    《Active MQ in action 教程》是一本深入探讨Apache ActiveMQ消息中间件的实战指南,由Bruce Snyder、Dejan Bosanac与Rob Davies三位作者共同撰写。本书旨在为读者提供全面且深入的理解ActiveMQ及其在实际项目中的...

    Active MQ教程+配置

    2. **商业JMS Providers**:例如IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ、NonStop Server for Java Message Service (JMS)、Sun Java System Message Queue、Sonic jms、TIBCO Enterprise For JMS和iLinkMQ...

    active_mq_mvc源码

    在本项目"active_mq_mvc源码"中,我们主要关注的是如何在MVC(Model-View-Controller)架构中有效地集成ActiveMQ,一个流行的Java消息代理和消息中间件。源码分析将揭示设计思想、设计模式以及如何巧妙地运用反射...

    Active MQ in Action

    《Active MQ in Action》是关于Apache ActiveMQ的权威指南,由Manning出版社出版。这本书深入浅出地介绍了ActiveMQ这一开源消息代理系统,是理解、配置、管理和优化ActiveMQ的关键资源。ActiveMQ是Apache软件基金会...

    Active MQ 与 IBM WebSphere MQ 可用性和管理分析

    Apache ActiveMQ和IBM WebSphere MQ(简称IBMMQ)是市场上广泛使用的两种消息队列产品。ActiveMQ是开源社区中的佼佼者,而IBMMQ则由大型企业广泛采用,尤其在金融服务行业中。本份报告,题目为“ActiveMQ与IBMMQ高...

    active MQ 通信程序全套代码

    总之,"Active MQ 通信程序全套代码"是一份宝贵的资源,它涵盖了ActiveMQ的基础知识和实践应用,对于学习和理解消息中间件的工作原理,以及如何在实际项目中部署和使用ActiveMQ,都是非常有帮助的。通过深入研究这些...

    IBM WebSphere MQ的使用

    9. **监控和管理**:IBM提供WebSphere MQ管理控制台和命令行工具,方便管理员监控队列状态、查看日志和进行配置管理。 10. **性能优化**:通过对队列大小、通道参数、网络配置等进行调整,可以优化WebSphere MQ的...

    集成Websphere Application Server 和Active MQ

    标题中的“集成Websphere Application Server 和Active MQ”意味着我们将探讨如何将IBM的Websphere Application Server(WAS)与Apache ActiveMQ结合使用,以实现企业级的消息传递和队列管理功能。Websphere ...

    Active mq jdbc持久化所需要的包.rar

    针对"Active mq jdbc持久化所需要的包.rar"这个压缩文件,我们可以推断它包含了实现ActiveMQ使用JDBC持久化的相关依赖库。通常,这些库可能包括: 1. ActiveMQ的主库:包含了ActiveMQ的核心功能,如消息队列管理、...

    active MQ ,消息队列

    在使用这些示例代码时,开发者需要理解如何正确地创建生产者和消费者,如何配置消息的格式和属性,以及如何处理大附件的分块和重组。同时,对于生产环境,还需要关注ActiveMQ的高可用性、性能优化和安全性设置,比如...

    active MQ maven POM方式

    这个"mq-demo02"文件可能是项目中的一个示例,包含了如何配置和使用ActiveMQ的代码示例。通过查看和运行这个项目,初学者可以更直观地了解如何在实际开发中集成和使用ActiveMQ。 总结,学习ActiveMQ Maven POM方式...

    Delphi向MQ远程队列发送消息

    可以是文本、二进制或其他格式,取决于你的需求和MQ队列的配置。 5. 发送消息:调用`MQPut`函数,将`MQMessage`对象和队列句柄作为参数,将消息放入队列。 6. 关闭队列和断开连接:使用`MQClose`关闭队列,然后...

    active mq 学习笔记

    作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间进行消息传递。 **引入中间件的优势:** - **减少服务器间的依赖**:在没有引入消息中间件的情况下,各个服务之间可能存在大量的相互依赖...

    zis.rar_active MQ_activemq_java activeMQ_java 转发

    在这个"zis.rar_active MQ_activemq_java _activeMQ_java 转发"的压缩包中,我们可以推测其主要内容可能涉及如何使用ActiveMQ在Java环境中实现消息的转发功能。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ...

    active-mq-5.11.1

    标题"active-mq-5.11.1"指的是该版本的ActiveMQ,这是一个稳定且广泛使用的版本。 ActiveMQ作为中间件,其主要功能是提供消息传递服务,它允许应用程序之间通过发送和接收消息进行通信,而不是直接调用彼此。这种...

    Spring Boot基于Active MQ实现整合JMS

    今天,我们将介绍如何使用 Spring Boot 实现整合 Active MQ,实现 JMS 消息的生产和消费。 JMS 是一种 Java API,用于在两个应用程序之间异步地传输数据。JMS messaging 是一种松耦合的架构风格,通过在消息队列中...

    ActiveMQ高并发处理方案

    - **非阻塞IO**:通过配置ActiveMQ使用非阻塞IO,可以减少线程的使用,从而支持更多并发连接。 - **消息分发线程池**:通过设置 `org.apache.activemq.UseDedicatedTaskRunner` 为 `false`,可以让ActiveMQ使用一个...

    Active MQ 插件开发与部署

    开发过程中,使用一些辅助工具可以提高效率,例如IDEA的Java Debugging工具,用于定位和调试插件中的问题;Eclipse的Maven插件,帮助管理依赖和构建;以及ActiveMQ的管理控制台,用于实时查看和测试插件效果。 总结...

Global site tag (gtag.js) - Google Analytics