本章重点

  • 怎么使用独占式消费者
  • 消息分组的威力
  • 理解流和二进制大对象
  • 容错传输
  • 计划消息分发

简介

上一章我们介绍了 ActiveMQ 的代理特性,本章我们将学习 ActiveMQ 客户端的一些高级特性。我们将学习如何保证一个消费者可以从某个队列中接收到消息,而不管多少个消费者订阅了这个队列。这种特性我们称之为独占式消费者,可以用于消费者按顺序接收消息的场景或者分布式锁机制。接下来,我们将学习消息组,使用它消息会被分为多个组,而每个组都会被同一个消费者消费。ActiveMQ 支持两种不同的方式来发送体积较大的消息:使用流和使用二进制大对象消息,我们也会学习如何使用这两种方法。出现网络问题时,让应用保持正确运行是非常重要的,所以我们也会学习容错传输的细节。最后,我们会学习如何使用计划消息分发,以便带有延迟的发送消息。
本章中你可能想要了解的特性还有一个客户端消息确认的几种模式。在下一章我们将学习 ActiveMQ 性能调优,而选择一个合适的消息确认方式是获得良好性能的一个指标。所以本章我们也会介绍各种消息确认方式。

独占式消费者

使用场景:为了避免单点故障,所以对于一个队列的消息,你的应用有多个消费者进行消费,以防止一个消费者失败后应用就不再处理消息了。消息队列的概念就是消息先进先出,但是多个消费者消费消息时,接收消息顺序是正确的,但是处理消息的顺序却未必是正确的(鬼知道线程调度器先执行那个处理消息的代理)!为了保证消息能按顺序被处理,只能有一个消费者;但一个消费者又不能避免单点故障。所以,这个时候独占式消费者就应运而生了:一个队列可以有多个消费者,但仅仅只有一个消费者可以从队列中消费消息,这也就是说这个消费者给这个队列加锁了,如果这个消费者挂掉了,那么其他消费者就会上阵替补,但上阵替补的还是只有一个。

ActiveMQ 的客户端选项的更多相关文章

  1. ActiveMq C#客户端 消息队列的使用(存和取)

    1.准备工具 VS2013Apache.NMS.ActiveMQ-1.7.2-bin.zipapache-activemq-5.14.0-bin.zip 2.开始项目 VS2013新建一个C#控制台应 ...

  2. 关于ActiveMQ的一点总结

    ActiveMQ入门 作者:一路向北 摘要:本文主要讲述ActiveMQ的基本知识和使用方法,并简单结合spring使用ActiveMQ. 一.ActiveMQ特性和使用总览 企业消息软件从80年代起 ...

  3. ActiveMQ入门

    ActiveMQ简介 概要 开源 JMS-compliant 消息中间件message-oriented middleware(MOM) 松耦合,相对于RPC的紧耦合 发送消息fire-and-for ...

  4. 使用花生壳6.5客户端FTP设置

    1.打开FTP客户端—选项—参数选择 2.设置为主动模式(PORT) 3.连接FTP服务器 4.FTP连接成功

  5. ActiveMQ中Session设置的相关理解

    名词解释: P:生产者 C:消费者 服务端:P 或者 ActiveMQ服务 客户端:ActiveMQ服务 或者 C 客户端成功接收一条消息的标志是这条消息被签收.成功接收一条消息一般包括如下三个阶段: ...

  6. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

    从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Cl ...

  7. Linux下安装ActiveMQ CPP

    ActiveMQ CPP ActiveMQ CPP是用C++语言访问ActiveMQ的客户端开发库,也称cms(cpp message service),安装cms开发库需要先安装一些基础库. 如下: ...

  8. ActiveMQ消息传递的两种方式

    1.什么是ActiveMQ? ActiveMQ是apache提供的开源的,实现消息传递的一个中间插件,可以和spring整合,是目前最流行的开源消息总线,ActiveMQ是一个完全支持JMS1.1和J ...

  9. ActiveMQ系列之五:ActiveMQ的Transport

    连接到ActiveMQ Connector:ActiveMQ提供的,用来实现连接通讯的功能.包括:client-to-broker.broker-to-broker. ActiveMQ允许客户端使用多 ...

随机推荐

  1. MySQL 5.7.9修改root密码以及新特性

    原文地址:http://www.cnblogs.com/Gbeniot/p/5156633.html

  2. PHP查看目录下的所有文件

    [1].[代码] [PHP]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  3. 使用Kotlin开发Android应用(II):创建新工程

    在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了.首次配置Android Studio需要 ...

  4. LATEX教程(一)

    第一个文档 打开WinEdt,建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8. \documentclass{article} \begin{document} hello, ...

  5. K-M-P

    分段K-M-P 只需要记录上一段已经匹配了的长度,再接着从匹配下一段就可以了.

  6. linux 快速清空文件内容

    Tomcat 的catelina.out 如果不配置按照日期产生会在一个文件中产生大量的输出日志. 清除日志如果直接删除catelina.out将无法输出日志.如果想输出日志只能重启Tomcat才会产 ...

  7. Python学习进程(3)Python基本数据类型

        本节介绍在Python语法中不同的变量数据类型.     (1)基本数据类型: >>> a=10; >>> b=10.0; >>> c=T ...

  8. Vuex的入门教程

    前言 在 Vue.js 的项目中,如果项目结构简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式,详细点击这篇文章查看. 但是如果是大型项目,很多时候都需要在子组件之间传递 ...

  9. JavaScript笔记04——事件与回调

    1.在浏览器中,大多数代码都是由事件驱动的(event-driven). 这和生物中的神经反射有点类似. 比如说,谷歌页面上的一个按钮, 当我们“按下”这个按钮的时候,将跳出如下界面. 那么你有没想过 ...

  10. 【Head First Servlets and JSP】笔记14:session再探 & Listener示例

    对于session的“CRUD” 会话迁移 别忘了HttpSessionBindingListener Listener示例 1.session的“增”与“删”——session的创建和撤销的调用主体 ...