conf/activemq.xml配置文件里添加上如下配置:
<persistenceAdapter>
<amqPersistenceAdapter directory="activemq-data" maxFileLength="32mb"/>
</persistenceAdapter>
熟悉说明
property name default value Comments
directory activemq-data 存储消息文件和日志的目录
useNIO true 使用 NIO 特性
syncOnWrite false 同步写文件到磁盘
maxFileLength 32mb Message Data日志文件的最大 Size
persistentIndex true 持久化日志索引,如果设为 false ,则在内存中保存
maxCheckpointMessageAddSize 4kb 在自动提交前在事务中能保持的最大消息数
cleanupInterval 30000 每隔多少时间清理不再使用的消息日志(毫秒)
indexBinSize 1024 这个值是用来提升索引的性能的,值越大,索引相对性能越好
indexKeySize 96 index key的size,index key基于message id
indexPageSize 16kb 索引页的size
directoryArchive archive 消费完的Data Log存放的目录
archiveDataLogs false 设置为true的话,消费完的Data Log就放到Archive目录,而不是删除。
参考:
http://www.360doc.com/content/10/0728/17/11586_42075045.shtml
为了防止丢消息,可以这样设定
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<virtualTopic name=">" prefix="VirtualTopicConsumers.*." selectorAware="false"/>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="200mb">
<pendingSubscriberPolicy>
<vmCursor />
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="200mb">
<!-- Use VM cursor for better latency
For more information, see:
http://activemq.apache.org/message-cursors.html
<pendingQueuePolicy>
<vmQueueCursor/>
</pendingQueuePolicy>
-->
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
注意:将topic转化为queue的方法
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<virtualTopic name=">" prefix="VirtualTopicConsumers.*." selectorAware="false"/>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
参考:
http://activemq.apache.org/persistence.html
http://activemq.apache.org/virtual-destinations.html
代码体现
jms:queue:VirtualTopicConsumers.nmEncashQueue.encashend-topic
分享到:
相关推荐
**JMS消息队列机制详解** Java Message Service(JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它定义了生产、发送、接收和读取消息的标准API,使得不同的消息中间件提供商可以提供兼容的实现,便于...
6. **持久化(Persistence)**:JMS支持消息的持久化存储,即使在服务器故障后,也能保证消息不丢失。 7. **事务(Transactions)**:JMS允许在发送和接收消息时使用JTA(Java Transaction API),确保消息操作的...
4. **消息代理(Message Broker)**:也称为JMS提供者,负责存储和转发消息,如ActiveMQ、RabbitMQ和Apache Qpid等。 5. **队列(Queue)**:点对点模型中的目标,每个消息仅被一个消费者接收。 6. **主题(Topic)*...
8. **持久化**:JMS允许消息的持久化存储,即使在消息代理重启后,消息也不会丢失。这对于确保消息的可靠传递至关重要。 9. **目的地(Destination)**:消息发送和接收的目标,可以是队列或主题。 10. **消息类型...
5. **消息代理(Message Broker)或消息服务器**:如ActiveMQ、RabbitMQ、IBM WebSphere MQ等,它们负责存储、路由和传递消息。 6. **连接工厂(ConnectionFactory)**:提供创建JMS连接的工厂方法。 7. **连接...
【正文】 Java Messaging Service(JMS...同时,JMS提供的消息持久化和优先级机制确保了消息的重要性和可靠性。在WebLogic这样的应用服务器中配置JMS,可以帮助开发者充分利用这些特性,构建高效、健壮的企业级应用。
这通过提供者的持久存储机制来实现。 8. **JNDI查找**:在企业级Java应用中,JMS对象(如ConnectionFactory和Destination)通常通过Java Naming and Directory Interface (JNDI) 进行查找和绑定,以便于管理和共享...
JMS允许应用程序在分布式环境中发送和接收消息,它作为一种异步通信机制,能够解耦生产者和消费者,提高系统的可扩展性和可靠性。本文将深入探讨Spring如何整合JMS,以便于在实际项目中充分利用其功能。 一、JMS...
源码分析可以帮助开发者更深入地理解JMS如何处理消息的发送、接收和存储,以及如何确保消息的可靠传递。 **压缩包子文件的文件名称列表:“JMS.mmap”** "Mmap"通常指的是内存映射文件(Memory-Mapped File),这...
JMS 1.1是其一个重要的版本,它为分布式系统中的应用程序提供了一种可靠的消息传递机制,使得应用程序可以在不同时刻、不同速度的系统之间交换数据。本文将深入探讨JMS 1.1的核心概念、主要特性以及实际应用。 一、...
3. **消息队列**:作为存储和转发的媒介,消息队列保证了消息的顺序,并在必要时进行消息的持久化,以防系统故障导致数据丢失。 4. **事务支持**:JMS提供了事务处理能力,确保消息的原子性,即消息要么全部发送成功...
4. **配置JMS服务器**:设置消息存储、持久化策略和资源限制。 5. **部署JMS资源**:将创建的JMS模块和配置部署到WebLogic服务器上。 在实现JMS实例时,你可以采用编程模型或声明式模型。编程模型需要在代码中显式...
Java消息服务(Java Message Service,简称JMS)是Java平台中...对于初学者来说,这些文档会提供一个良好的起点,帮助他们逐步掌握JMS的核心概念和实践技巧,从而在开发中有效地利用消息传递机制进行解耦和异步处理。
此外,论文可能会讨论一些关键设计决策,如如何保证消息的可靠传输(例如,使用持久化存储和确认机制),如何优化性能(例如,使用批量发送和预取策略),以及如何处理并发和负载均衡问题。 在实际应用中,这样的...
WebLogic JMS的体系结构包括多个主要组件,如具有丰富特性的JMS服务器实现、客户端应用以及消息的持久化存储机制。WebLogic JMS还具备集群特性,可以在集群环境下实现目的地的负载均衡和透明访问,支持高可伸缩性,...
JMS 1.1 API是这个规范的一个版本,提供了在分布式环境中发送和接收消息的机制,它是Java应用程序与其他系统进行交互的重要工具,尤其在处理大量并发和数据传输时。 JMS 1.1 API文档主要包含了以下关键概念和接口:...
4. **后备存储**:提供持久化的消息存储,可以基于文件系统或JDBC数据库。 **WebLogic JMS 特性** 1. **消息组成**:JMS消息由头、属性和主体组成。头包含了路由消息所需的标准字段,属性是可选的自定义字段,主体...
- **消息队列(Message Queue)**:存储消息的临时容器,确保消息被正确地发送和接收。 - **生产者(Producer)**:创建并发送消息到消息队列的应用。 - **消费者(Consumer)**:从消息队列中接收并处理消息的...