当前位置: 首页 > news >正文

ActiveMQ消息的可靠性机制(转)

文章转自:http://www.linuxidc.com/Linux/2013-02/79664.htm

 

1.JMS消息确认机制

JMS消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务性会话中,消息何时被确认取决于创建会话时的应答模式(acknowledgement mode)。该参数有以下三个可选值:

Session.AUTO_ACKNOWLEDGE。当客户成功的从receive方法返回的时候,或者从MessageListener.onMessage方法成功返回的时候,会话自动确认客户收到的消息。

Session.CLIENT_ACKNOWLEDGE。 客户通过消息的acknowledge方法确认消息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被消费的消息将自动确认所有已被会话消 费的消息。例如,如果一个消息消费者消费了10个消息,然后确认第5个消息,那么所有10个消息都被确认。

Session.DUPS_ACKNOWLEDGE。 该选择只是会话迟钝第确认消息的提交。如果JMS provider失败,那么可能会导致一些重复的消息。如果是重复的消息,那么JMS provider必须把消息头的JMSRedelivered字段设置为true。

2.ActiveMQ消息确认机制

ActiveMQSession,实现了JMS的session,QueueSession, TopicSession

ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE 每条消息都必须显式调用acknowledge方法确认消息。

3.消息持久性

JMS 支持以下两种消息提交模式:

DeliveryMode.PERSISTENT  指示JMS provider持久保存消息,以保证消息不会因为JMS provider的失败而丢失。 消息持久化在硬盘中,ActiveMQ持久化有三种方式:AMQ、KahaDB、JDBC。

DeliveryMode.NON_PERSISTENT  不要求JMS provider持久保存消息,消息存放在内存中,读写速度快,在JMS服务停止后消息会消失,没有持久化到硬盘。

 

转载于:https://www.cnblogs.com/Jtianlin/p/5265407.html

相关文章:

  • 啦啦啦~
  • select 相关
  • JSP具体篇——out
  • 20145109《Java程序设计》第二周学习总结
  • Mac OS X下高速拷贝文件路径
  • Material Design之TextInputLayout使用示例
  • redis配置详情
  • JS 笔记(一)
  • 作业二:四则运算
  • Eclipse使用快捷键代码格式化有时失效解决办法
  • 出差(二十四)失控
  • Qt 在控件上面绘图 label,pushbutton。。。。。
  • 抽象类,继承,接口个人见解
  • 一周总结
  • Spring 通过maven pom文件配置初始化
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Android优雅地处理按钮重复点击
  • ES6 ...操作符
  • IndexedDB
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Koa2 之文件上传下载
  • mysql中InnoDB引擎中页的概念
  • PAT A1017 优先队列
  • React组件设计模式(一)
  • SAP云平台里Global Account和Sub Account的关系
  • Vue2.0 实现互斥
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于 Cirru Editor 存储格式
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 如何利用MongoDB打造TOP榜小程序
  • 通过git安装npm私有模块
  • 详解移动APP与web APP的区别
  • 新版博客前端前瞻
  • 一份游戏开发学习路线
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (数据结构)顺序表的定义
  • (四)JPA - JQPL 实现增删改查
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .gitignore文件---让git自动忽略指定文件
  • .net 按比例显示图片的缩略图
  • ::前边啥也没有
  • @AutoConfigurationPackage的使用
  • @Query中countQuery的介绍
  • [100天算法】-实现 strStr()(day 52)
  • [Android]Tool-Systrace
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C/C++]数据结构 循环队列
  • [CF482B]Interesting Array
  • [ComfyUI进阶教程] animatediff视频提示词书写要点
  • [Enterprise Library]调用Enterprise Library时出现的错误事件之关闭办法
  • [EWS]查找 文件夹
  • [Flex][问题笔记]TextArea滚动条问题