activemq的高级特性:消息的可靠性
高级特性之消息的可靠性
可靠性分为:生产者、消费者。生产者必须让mq收到消息,消费者必须能够接收到消息并且消费成功,这就是消息的可靠性。
1:生产者可靠性
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Session.AUTO_ACKNOWLEDGE是mq自动应答,当生产者往mq发送消息的时候,当模式为queue,
消息会自动的持久化,然后持久化之后就会通知发送者持久化成功,所以使用queue这种自动应答模式消息是可靠的。
如果使用topic模式,默认情况下会导致消息丢失,所以该模式下要使用消息的持久化机制。
如果消息要使用全部陈宫或者全部失败的话,这时候就要使用到mq事务。
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); //设置为true 开启事务
session.commit; //事务的提交或者回滚(rollback)
可靠性:要不就是消息的持久化或者是消息的事务。
2:消费者可靠性
消费者能否收到消息,消费者能不能消费成功
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
AUTO_ACKNOWLEDGE //自动确认,收到消息以后,自动应答并且消费成功了。 如果有异常不会自动应答,并且会重发6次
CLIENT_ACKNOWLEDGE //客户端手动确认,message.acknowledge()手动确认。如果没有确定,服务停掉以后,就会自动发送给其他的消费者
DUPS_OK_ACKNOWLEDGE //批量自动确认,在内部根据某个算法,在接受一定数量的时候在一次性确认。
SESSION_TRANSACTED //createSession设置额为true的时候,就开启事务。一批消息,session.commit()自动提交。
activemq的高级特性:消息的可靠性的更多相关文章
- activemq的高级特性:消息持久订阅
activemq的高级特性之消息持久订阅 如果采用topic模式发送的时候,mq关闭了或消费者关闭了.在启动的时候,就会收不到mq发送的消息,所以就会出现消息持久订阅. 消息持久订阅:第一:消息要持久 ...
- activemq的高级特性:通配符式分层订阅
activemq的高级特性之通配符式分层订阅 队列的名称可以分层:aa.bb.cc.dd 可以匹配:aa.bb.cc.dd,aa.*.cc.dd,aa.> *:匹配当前层的内容 >:任何一 ...
- activemq的高级特性:消息存储持久化
activemq的高级特性之消息存储持久化 有基于文件的,数据库的,内存的.默认的是基于文件的,在安装目录/data/kahadb.在conf/activemq.xml文件中. <persist ...
- activeMQ的高级特性:嵌入activemq
activemq的高级特性之嵌入式activemq 1:编写activeMQ服务 import org.apache.activemq.broker.BrokerService; import org ...
- activemq的高级特性:集群实战
高级特性实战需求 当消费端是多个集群,集群A又包含多个服务. 当每个集群都要接受相同的一批消息,而集群内的每个服务都去分摊消息. 解决办法一:级联 增加一个中转者.但是不是特别的优化,而且性能也不是特 ...
- Java高级特性—消息队列
1)什么是jms JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API. 它便于消息系统中的Java应用程序进行消息 ...
- JMS学习十一(ActiveMQ Consumer高级特性之独有消费者(Exclusive Consumer))
一.简介 Queue中的消息是按照顺序被分发到consumers的.然而,当你有多个consumers同时从相同的queue中提取消息时, 你将失去这个保证.因为这些消息是被多个线程并发的处理.有的时 ...
- 消息队列——RabbitMQ的基本使用及高级特性
文章目录 一.引言 二.基本使用 1. 简单示例 2. work queue和公平消费消息 3. 交换机 三.高级特性 1. 消息过期 2. 死信队列 3. 延迟队列 4. 优先级队列 5. 流量控制 ...
- ActiveMQ中的Destination高级特性(一)
---------------------------------------------------------------------------------------- Destination ...
随机推荐
- Windows server 2008 Tips
Tips for remote server in domain. Some Definition user [user] group workgroup domain Local account d ...
- C++多线程编程(★入门经典实例★)
原文:http://www.cnblogs.com/codingmengmeng/p/5913068.html 多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对 ...
- MAC电脑安装svn客户端cornerstone
个人感觉在mac上最好用的svn客户端就是cornerstone,公司客户端也统一使用这个 sudo spctl --master-disable 这条命令作用就是使得mac运行安装任何来源App,不 ...
- 卸载Sharepoint2016后。重新安装提示 系统从以前的安装重新启动,或更新正在等待错误
卸载Sharepoint2016 重启N遍,不停地重启.需要删除注册表项 下的 .将PendingFileRenameOperations键项删除,再重新安装就可以安装成功.
- Http扫盲
https://www.kancloud.cn/kancloud/tealeaf-http/43832
- ELK系统分析Nginx日志并对数据进行可视化展示
结合之前写的一篇文章:ELK日志分析平台搭建全过程,上篇文章主要讲了部署方法.而这篇文章介绍的是单独监控nginx 日志分析再进行可视化图形展示. 本文环境与上一篇环境一样,前提 elasticsea ...
- Android sdk manager 更新 5.0 太难了,终于解决
由于众所周知的原因,必须在hosts中增加一些网址对应,才可以更新 203.208.46.146 www.google.com 203.208.46.1 plus.google.com 203.208 ...
- HDU4578 线段树(区间更新 + 多种操作)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578 , 线段树的区间更新 + 多种操作,好题. 虽然是比较裸的线段树,但是比较麻烦,并且有很多细节 ...
- 关于eclipse没有js、xml代码提示的解决:下载一个插件
1)eclipse打开帮助 2)Eclipse Marketplace,然后搜索AngularJS Eclipse 安装后重启就行了 xml的搜索Rinzo. 没有vpn,我的网络到达不了.
- mac本机svn命令使用
公司项目用到svn,之前做版本管理用的是git. 现在对svn回顾学习了一下. 这里有一篇很好的入门教程 http://www.rubyrobot.org/tutorial/subversion-wi ...