[jms那点事儿] JMS 消息传送模式、消息签收以及spring jmsTemplate配置

news/2024/7/4 0:52:15 标签: jms, spring, activemq, session, 存储, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

Activemq支持两种消息传送模式:PERSISTENT (持久消息)和 NON_PERSISTENT(非持久消息)

从字面意思就可以了解,这是两种正好相反的模式。

1、PERSISTENT 持久消息

class="tags" href="/tags/ACTIVEMQ.html" title=activemq>activemq默认的传送方式,此方式下的消息在配合class="tags" href="/tags/ACTIVEMQ.html" title=activemq>activemq.xml中配置的消息class="tags" href="/tags/CunChu.html" title=存储>存储方式,会被class="tags" href="/tags/CunChu.html" title=存储>存储在特定的地方,直到有消费者将消息消费或者消息过期进入DLQ队列,消息生命周期才会结束。

此模式下可以保证消息只会被成功传送一次和成功使用一次,消息具有可靠性。在消息传递到目标消费者,在消费者没有成功应答前,消息不会丢失。所以很自然的,需要一个地方来持久性class="tags" href="/tags/CunChu.html" title=存储>存储。

如果消息消费者在进行消费过程发生失败,则消息会被再次投递。

 

2、NON_PERSISTENT 非持久消息

非持久的消息适用于不重要的,可以接受消息丢失的哪一类消息,这种消息只会被投递一次,消息不会在持久性class="tags" href="/tags/CunChu.html" title=存储>存储中class="tags" href="/tags/CunChu.html" title=存储>存储,也不会保证消息丢失后的重新投递。

 

class="tags" href="/tags/SPRING.html" title=spring>spring提供的JmsTemplate中,同样提供了针对于当前功能的配置选项:

 

 消息的签收模式:

客户端成功接收一条消息的标志是一条消息被签收,成功应答。

消息的签收情形分两种:

1、带事务的class="tags" href="/tags/SESSION.html" title=session>session

 如果class="tags" href="/tags/SESSION.html" title=session>session带有事务,并且事务成功提交,则消息被自动签收。如果事务回滚,则消息会被再次传送。

2、不带事务的class="tags" href="/tags/SESSION.html" title=session>session

 不带事务的class="tags" href="/tags/SESSION.html" title=session>session的签收方式,取决于class="tags" href="/tags/SESSION.html" title=session>session的配置。

Activemq支持一下三种模式:

  Session.AUTO_ACKNOWLEDGE  消息自动签收
  Session.CLIENT_ACKNOWLEDGE  客户端调用acknowledge方法手动签收
  Session.DUPS_OK_ACKNOWLEDGE 不必必须签收,消息可能会重复发送。在第二次重新传递消息的时候,消息头的JmsDelivered会被置为true标示当前消息已经传送过一次,客户端需要进行消息的重复处理控制。

class="tags" href="/tags/SPRING.html" title=spring>spring提供的JmsTemplate中的配置方式:


http://www.niftyadmin.cn/n/1639038.html

相关文章

编译Elasticsearch问题

大意是运行elasticsearch运行需要1.8但是构建项目需要1.10。 所以是不支持jdk版本造成的构建失败。 如果不想修改系统环境变量,可以修改es源码中的文件“BuildPlugin.groovy”中,将 final String javaHome System.getenv(JAVA_HOME) 修改为 final …

Mycat分布式数据库架构解决方案--schema.xml详解

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!&#xf…

Mycat分布式数据库架构解决方案--rule.xml详解

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!&#xf…

[jms那点事儿]Activemq集群部署

集群部署,貌似activemq并不理想,分享一个链接吧暂时 http://wenku.baidu.com/view/6989622de2bd960590c67760.html 暂时没时间去太深入研究 之前看到一个同学写的博客讲到activemq他们目前平均吞吐量由4000/秒,4K的消息,这个量…

Mycat分布式数据库架构解决方案--搭建MySQL主从复制--一主多从

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!&#xf…

Mycat分布式数据库架构解决方案--Mycat实现读写分离

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!&#xf…

tomcat中通过JNDI数据源配置使用

一、数据源简介:***********************************************************************************在Java语言中,DataSource对象就是一个代表数据源实体的对象。一个数据源就是一个用来存储数据的工具,它可以是复杂的大型企业级数据库&…

RocketMQ消费优化

前言 消息团队一直致力于RocketMQ的性能优化,双十一前进行了低延时(毛刺)优化,保障了双十一万亿消息的流转如丝般顺滑,在2016年双十一种,MetaQ以接近万亿的消息总量支撑着全集团数千个应用,在系…