本章重点

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

简介

上一章我们介绍了 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. Jsp页面截取字符串

    用jstl标签: 首先页面中引入<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions ...

  2. Eslint使用指南

    本文主要讲如何在前端项目中引入Eslint静态代码检查工具,提升代码质量和统一代码风格,避免一些低级错误. 一 引入静态代码检查工具的目的 在团队协作中,为避免低级 Bug.产出风格统一的代码,会预先 ...

  3. Windows Server 2003 R2 With Sp2 序列号

    下载地址 ed2k://|file|cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso|647686144|107F10D2 ...

  4. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  5. 剑指offer 面试31题

    面试31题: 题目:栈的压入.弹出元素 题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...

  6. 如何使用 LINQ 执行插入、修改和删除操作

        本实例实现创建 LINQ To SQL 类对数据库进行插入.修改和删除的操作:以下是 具体步骤: 1 )建立 windows 窗体应用项目文件 2 )选择 ' 项目 \ 添加新项 ' 菜单,在 ...

  7. HTML中表格的使用

    表格: <table></table>表格 width:宽度.可以用像素或百分比表示. 常用960像素. border:边框,常用值为0. cellpadding:内容跟边框的 ...

  8. python3 multiprocessing 模块

    多进程 Multiprocessing 模块 multiprocessing 模块官方说明文档 Process 类 Process 类用来描述一个进程对象.创建子进程的时候,只需要传入一个执行函数和函 ...

  9. python有哪些好的学习资料或者博客?

    推荐Full Stack Python 有各种python资源汇总,从基础入门到各种框架web应用开发和部署,再到高级的ORM.Docker都有.以下是Full Stack Python 上总结的一些 ...

  10. solr、Lucene、IKAnalyzer这三者关系是怎样的?

    lucene 是开源搜索引擎 solr 是基于 lucene开发的搜索引擎 IK 是中文分词. lucene 不是一个搜索引擎,只是一个基础的文件索引工具包,或者叫“搜索引擎开发包”.不能单独作为程序 ...