本章重点

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

简介

上一章我们介绍了 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. java javassis crack class

    java javassis crack class java 反编译 android 反编译   1. jad http://varaneckas.com/jad/jad158e.linux.inte ...

  2. Django报:builtin_function_or_method' object is not iterable

    def detail(request,hero_id): hero=models.HeroInfo.objects.get(id=hero_id) return render_to_response( ...

  3. redis性能测试以及影响性能的因素

    redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients ...

  4. LeetCode_Easy_471:Number Complement

    LeetCode_Easy_471:Number Complement 题目描述 Given a positive integer, output its complement number. The ...

  5. 值得关注的10个Python语言学习博客

    大家好,还记得我当时学习python的时候,我一直努力地寻找关于python的博客,但我发现它们的数量很少.这也是我建立这个博客的原因,向大家分享我自己学到的新知识.今天我向大家推荐10个值得我们关注 ...

  6. BIO,NIO和AIO

    BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善. NIO: ...

  7. first application

    <!DOCTYPE html> <html> <head> <title>Create a Map</title> <meta htt ...

  8. matlab 读取nc

    在这里做个记录,这几个是matlab用来读取.nc格式数据的函数.只是函数,参数和变量为了便于理解,取括号中的名字.   fid=netcdf.open('fname','nowriter');%打开 ...

  9. layer满屏/禁止最大化最小化 可以做选择框使用

    1.layer弹窗最大化 var index=layer.open(); layer.full(index); 2.layer禁止最大化最小化 layer.open( [ type:2, title: ...

  10. VMWare虚拟机安装步骤

    VMWare虚拟机安装 如果以前安装过VMware,则先检查是否卸载干净(注册表等) 一.首先下载VMware Workstation Pro,在这里提供一个下载链接:https://www.nocm ...