QueueTopic的比较

1、JMS Queue执行load balancer语义:

一条消息仅能被一个consumer收到。

如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该message的consumer可用。

如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。

一个Queue可以有很多consumer,并且在多个可用的consumer中负载均衡。


如何理解:如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。

见附件中的程序:

在Receiver.java中, 创建了消费者并实现了同步接收:


  1. while (true) {
  2. // 设置接收者接收消息的时间,为了便于测试,这里谁定为100s
  3. TextMessage message = (TextMessage) consumer.receive(18000);
  4. // Object message = (Object) consumer.receive(28000);
  5. if (null != message) {
  6. System.out.println("订阅者1:收到消息-->" + message.getText());
  7. } else {
  8. System.out.println("订阅者1:运行结束...\n");
  9. break;
  10. }
  11. }

在Receiver2.java中,创建了消费者但是注释掉了接收部分的程序:


  1. //while (true) {
  2. // // 设置接收者接收消息的时间,为了便于测试,这里谁定为100s
  3. // TextMessage message = (TextMessage) consumer.receive(18000);
  4. // if (null != message) {
  5. // System.out.println("订阅者2:收到消息-->" + message.getText());
  6. // } else {
  7. // System.out.println("订阅者2:消费者运行结束...\n");
  8. // break;
  9. // }
  10. // }

先分别将Receiver和Receiver2运行起来,然后再运行Sender,将得到如下运行结果:


特别注意:订阅者2在订阅者1之后停止运行,如何在订阅者1前停止运行,结果还不一样。

此时再次开启receive1,将看到:


如果订阅者2在订阅者1之前停止运行,将会出现如下运行结果:



2、Topic实现publish和subscribe语义:

一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。


3、分别对应两种消息模式:

Point-to-Point (点对点),Publisher/Subscriber Model (发布/订阅者)

其中在Publicher/Subscriber 模式下又有Nondurable subscription(非持久订阅)和durable subscription (持久化订阅)2种消息处理方式。




附件列表

【ActiveMQ入门-5】ActiveMQ学习-Queue与Topic的比较的更多相关文章

  1. ActiveMQ——activemq的详细说明,queue、topic的区别(精选)

    JMS中定义了两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic).主要区别就是是否能重复消费. 点对点:Queue,不可重 ...

  2. ActiveMQ入门之四--ActiveMQ持久化方式

    消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和 ...

  3. ActiveMQ 入门和与 Spring 整合

    ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...

  4. ActiveMQ的queue以及topic两种消息处理机制分析

    1    queue与topic的技术特点对比 对比项 Topic Queue 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对点 有无状 ...

  5. SpringBoot整合ActiveMq实现Queue和Topic两种模式(看不懂你来打我)

    目录 一.前言 二.ActiveMq的下载和使用 三.依赖准备 四.yml文件配置 五.配置Bean 六.创建生产者(Queue+Topic) 七.创建消费者(Topic模式下) 八.测试结果(Top ...

  6. 【ActiveMQ入门-11】ActiveMQ学习-compositeDestination

    概要: 前一章讲解了消费者如何通过通配符来匹配目的地,以实现一个消费者同时接收多个目的地的消息. 对于生产者来讲,可能存在下面的需求: 1. 同一条message可能要发送到多个Queue: 2. 同 ...

  7. activemq安装运行及其在springboot中的queue和topic使用

    安装activemq 运行 springboot使用 依赖 配置 Producer Consumer ComsumerTopic 使用 安装activemq http://activemq.apach ...

  8. ActiveMQ学习总结(2)——ActiveMQ入门实例教程

    1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.5.1-bin.zip,然后双击a ...

  9. ActiveMQ queue和topic,持久订阅和非持久订阅

    消息的 destination 分为 queue 和 topic,而消费者称为 subscriber(订阅者).queue 中的消息只会发送给一个订阅者,而 topic 的消息,会发送给每一个订阅者. ...

随机推荐

  1. css 初始包含块

    continuous media ,paged media 关于continuous media[连续媒体]和paged media[分页媒体] 直白的讲,continuous和paged media ...

  2. 51nod1693

    题解: 首先将问题转化,可以发现操作改为两种 一种是s*=k,代价为k,一种是s--,代价为1 转化成图论,spfa跑最短路 然后更据一些证明,代价1的k<=13且为质数,并且不可能操作2连续5 ...

  3. sql server 的游标

    -- sql server 中的游标 --声明游标 /* declare cursorname [insensitive] [scroll] cursor for <select-查询块> ...

  4. 注解实现struts2零配置

    零配置指的是不经过配置文件struts.xml配置Action 首先:导入jar   struts2-convention-plugin-2.3.24.1.jar package com.action ...

  5. LARC Caffe笔记(二) 训练自己的img

    继看完 贺完结!CS231n官方笔记 上一次已经成功跑起caffe自带的例程,mnist和cifar10 但是终归用的是里面写好的脚本,于是打算训练自己的img 〇.目标 准备好food图片3类(出于 ...

  6. magento首页点击任何产品都出现404错误的问题方法

    很简单,只要在其他项目上的根目录上复制一个.htaccess文件到项目跟目录下就可以 了,其实就是是设置伪静态:

  7. CSS的使用

    1.行内样式/内联样式 特点:在具体的HTML标签中引入CSS代码 语法:所有的HTML标签都具有一个style属性,属性值就可以使用CSS样式规则 <标签 style="CSS样式规 ...

  8. Python集成开发环境搭建

    ===================== 开始学习Python的开发,首先得搭建好集成开发的环境! 分为下面几个步骤: 操作系统平台:Windows XP/7/10 都可以 1.安装并配置JDK运行 ...

  9. Maze dfs倒行

    Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is either empty, or i ...

  10. WinHex简介

    WinHex是一个专门用来对付各种日常紧急情况的小工具.它可以用来检查和修复各种文件.恢复删除文件.硬盘损坏造成的数据丢失等.同时它还可以让你看到其他程序隐藏起来的文件和数据.得到 ZDNetSoft ...