ActiveMQ 的客户端选项
本章重点
- 怎么使用独占式消费者
- 消息分组的威力
- 理解流和二进制大对象
- 容错传输
- 计划消息分发
简介
上一章我们介绍了 ActiveMQ 的代理特性,本章我们将学习 ActiveMQ 客户端的一些高级特性。我们将学习如何保证一个消费者可以从某个队列中接收到消息,而不管多少个消费者订阅了这个队列。这种特性我们称之为独占式消费者,可以用于消费者按顺序接收消息的场景或者分布式锁机制。接下来,我们将学习消息组,使用它消息会被分为多个组,而每个组都会被同一个消费者消费。ActiveMQ 支持两种不同的方式来发送体积较大的消息:使用流和使用二进制大对象消息,我们也会学习如何使用这两种方法。出现网络问题时,让应用保持正确运行是非常重要的,所以我们也会学习容错传输的细节。最后,我们会学习如何使用计划消息分发,以便带有延迟的发送消息。
本章中你可能想要了解的特性还有一个客户端消息确认的几种模式。在下一章我们将学习 ActiveMQ 性能调优,而选择一个合适的消息确认方式是获得良好性能的一个指标。所以本章我们也会介绍各种消息确认方式。
独占式消费者
使用场景:为了避免单点故障,所以对于一个队列的消息,你的应用有多个消费者进行消费,以防止一个消费者失败后应用就不再处理消息了。消息队列的概念就是消息先进先出,但是多个消费者消费消息时,接收消息顺序是正确的,但是处理消息的顺序却未必是正确的(鬼知道线程调度器先执行那个处理消息的代理)!为了保证消息能按顺序被处理,只能有一个消费者;但一个消费者又不能避免单点故障。所以,这个时候独占式消费者就应运而生了:一个队列可以有多个消费者,但仅仅只有一个消费者可以从队列中消费消息,这也就是说这个消费者给这个队列加锁了,如果这个消费者挂掉了,那么其他消费者就会上阵替补,但上阵替补的还是只有一个。
ActiveMQ 的客户端选项的更多相关文章
- ActiveMq C#客户端 消息队列的使用(存和取)
1.准备工具 VS2013Apache.NMS.ActiveMQ-1.7.2-bin.zipapache-activemq-5.14.0-bin.zip 2.开始项目 VS2013新建一个C#控制台应 ...
- 关于ActiveMQ的一点总结
ActiveMQ入门 作者:一路向北 摘要:本文主要讲述ActiveMQ的基本知识和使用方法,并简单结合spring使用ActiveMQ. 一.ActiveMQ特性和使用总览 企业消息软件从80年代起 ...
- ActiveMQ入门
ActiveMQ简介 概要 开源 JMS-compliant 消息中间件message-oriented middleware(MOM) 松耦合,相对于RPC的紧耦合 发送消息fire-and-for ...
- 使用花生壳6.5客户端FTP设置
1.打开FTP客户端—选项—参数选择 2.设置为主动模式(PORT) 3.连接FTP服务器 4.FTP连接成功
- ActiveMQ中Session设置的相关理解
名词解释: P:生产者 C:消费者 服务端:P 或者 ActiveMQ服务 客户端:ActiveMQ服务 或者 C 客户端成功接收一条消息的标志是这条消息被签收.成功接收一条消息一般包括如下三个阶段: ...
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Cl ...
- Linux下安装ActiveMQ CPP
ActiveMQ CPP ActiveMQ CPP是用C++语言访问ActiveMQ的客户端开发库,也称cms(cpp message service),安装cms开发库需要先安装一些基础库. 如下: ...
- ActiveMQ消息传递的两种方式
1.什么是ActiveMQ? ActiveMQ是apache提供的开源的,实现消息传递的一个中间插件,可以和spring整合,是目前最流行的开源消息总线,ActiveMQ是一个完全支持JMS1.1和J ...
- ActiveMQ系列之五:ActiveMQ的Transport
连接到ActiveMQ Connector:ActiveMQ提供的,用来实现连接通讯的功能.包括:client-to-broker.broker-to-broker. ActiveMQ允许客户端使用多 ...
随机推荐
- PHP heredoc 用法2
参考网上的一个heredoc php模板实现的简单代码:index.php文件: <?php function template($template,$EXT ='htm') { $path = ...
- JS replace()方法替换变量(可以对变量进行全文替换)
转至:http://blog.sina.com.cn/s/blog_6552200b0102ve60.html 事情是这样的: 我要用 JS 替换一个多行文本的关键字 正常,没有变量的时候应该是这样: ...
- Vuejs2.0 cnpm 安装脚手架项目模板
NPM 方法 因为npm 安装速度慢,所以我们可以使用淘宝的镜像cnpm 再安装之前 我们需要先安装nodejs 因为vue框架也是基于nodeljs 下载地址:http://nodejs.cn/d ...
- js四则运算符
只有当加法运算时,其中一方是字符串类型,就会把另一个也转为字符串类型.其他运算只要其中一方是数字,那么另一方就转为数字.并且加法运算会触发三种类型转换:将值转换为原始值,转换为数字,转换为字符串. & ...
- Python lxml 使用
lxml,是python中用来处理xml和html的功能最丰富和易用的库 from lxml import etree from lxml import html h = ''' <html&g ...
- python requests 使用
快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其假设你已经安装了 Requests.如果还没有,去安装一节看看吧. 首先,确认一下: Requests 已安装 Req ...
- python基础26 -----python进程及协成
一.进程 1.multiprocessing模块实现多进程并发. 1.1multiprocessing包是Python中的多进程管理包,与threading.Thread类似,它可以利用multipr ...
- 内网IP&外网IP/NAT
内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet.内网的计算机可向Internet上的其他 计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连 ...
- 号码字符串与BCD编码互转 c#
/// <summary> /// 把号码用BCD进行压缩编码. /// </summary> /// <param name= ...
- dict字典常用方法总结,数据解构(解包)
dict {'name':'holle'}字典存储大量关联型数据,可迭代的,最多只有200个键.查询数据速度非常快,符合二分查找(有100个数比如找75会先找到50然后判断,所以2^7次方7次即可找到 ...