<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,有需要的可以拿去~~
相关推荐
首先,我们需要配置JMS连接工厂,创建一个到Active MQ服务器的连接,然后创建会话和目的地(队列或主题),最后创建生产者和消费者。生产者用于发送消息,而消费者用于接收消息。这个示例可能涵盖了Active MQ的基本...
《Active MQ in action 教程》是一本深入探讨Apache ActiveMQ消息中间件的实战指南,由Bruce Snyder、Dejan Bosanac与Rob Davies三位作者共同撰写。本书旨在为读者提供全面且深入的理解ActiveMQ及其在实际项目中的...
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源码"中,我们主要关注的是如何在MVC(Model-View-Controller)架构中有效地集成ActiveMQ,一个流行的Java消息代理和消息中间件。源码分析将揭示设计思想、设计模式以及如何巧妙地运用反射...
《Active MQ in Action》是关于Apache ActiveMQ的权威指南,由Manning出版社出版。这本书深入浅出地介绍了ActiveMQ这一开源消息代理系统,是理解、配置、管理和优化ActiveMQ的关键资源。ActiveMQ是Apache软件基金会...
Apache ActiveMQ和IBM WebSphere MQ(简称IBMMQ)是市场上广泛使用的两种消息队列产品。ActiveMQ是开源社区中的佼佼者,而IBMMQ则由大型企业广泛采用,尤其在金融服务行业中。本份报告,题目为“ActiveMQ与IBMMQ高...
总之,"Active MQ 通信程序全套代码"是一份宝贵的资源,它涵盖了ActiveMQ的基础知识和实践应用,对于学习和理解消息中间件的工作原理,以及如何在实际项目中部署和使用ActiveMQ,都是非常有帮助的。通过深入研究这些...
9. **监控和管理**:IBM提供WebSphere MQ管理控制台和命令行工具,方便管理员监控队列状态、查看日志和进行配置管理。 10. **性能优化**:通过对队列大小、通道参数、网络配置等进行调整,可以优化WebSphere MQ的...
标题中的“集成Websphere Application Server 和Active MQ”意味着我们将探讨如何将IBM的Websphere Application Server(WAS)与Apache ActiveMQ结合使用,以实现企业级的消息传递和队列管理功能。Websphere ...
针对"Active mq jdbc持久化所需要的包.rar"这个压缩文件,我们可以推断它包含了实现ActiveMQ使用JDBC持久化的相关依赖库。通常,这些库可能包括: 1. ActiveMQ的主库:包含了ActiveMQ的核心功能,如消息队列管理、...
在使用这些示例代码时,开发者需要理解如何正确地创建生产者和消费者,如何配置消息的格式和属性,以及如何处理大附件的分块和重组。同时,对于生产环境,还需要关注ActiveMQ的高可用性、性能优化和安全性设置,比如...
这个"mq-demo02"文件可能是项目中的一个示例,包含了如何配置和使用ActiveMQ的代码示例。通过查看和运行这个项目,初学者可以更直观地了解如何在实际开发中集成和使用ActiveMQ。 总结,学习ActiveMQ Maven POM方式...
可以是文本、二进制或其他格式,取决于你的需求和MQ队列的配置。 5. 发送消息:调用`MQPut`函数,将`MQMessage`对象和队列句柄作为参数,将消息放入队列。 6. 关闭队列和断开连接:使用`MQClose`关闭队列,然后...
作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间进行消息传递。 **引入中间件的优势:** - **减少服务器间的依赖**:在没有引入消息中间件的情况下,各个服务之间可能存在大量的相互依赖...
在这个"zis.rar_active MQ_activemq_java _activeMQ_java 转发"的压缩包中,我们可以推测其主要内容可能涉及如何使用ActiveMQ在Java环境中实现消息的转发功能。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ...
标题"active-mq-5.11.1"指的是该版本的ActiveMQ,这是一个稳定且广泛使用的版本。 ActiveMQ作为中间件,其主要功能是提供消息传递服务,它允许应用程序之间通过发送和接收消息进行通信,而不是直接调用彼此。这种...
今天,我们将介绍如何使用 Spring Boot 实现整合 Active MQ,实现 JMS 消息的生产和消费。 JMS 是一种 Java API,用于在两个应用程序之间异步地传输数据。JMS messaging 是一种松耦合的架构风格,通过在消息队列中...
- **非阻塞IO**:通过配置ActiveMQ使用非阻塞IO,可以减少线程的使用,从而支持更多并发连接。 - **消息分发线程池**:通过设置 `org.apache.activemq.UseDedicatedTaskRunner` 为 `false`,可以让ActiveMQ使用一个...
开发过程中,使用一些辅助工具可以提高效率,例如IDEA的Java Debugging工具,用于定位和调试插件中的问题;Eclipse的Maven插件,帮助管理依赖和构建;以及ActiveMQ的管理控制台,用于实时查看和测试插件效果。 总结...