如果您细心的话,在ActiveMQ提供的管理页面上已经看到有两个功能页面:Queue和Topic。Queue和Topic是JMS为开发人员提供的两种不同工作机制的消息队列。 在ActiveMQ官方的解释是:

1、Topics

In JMS a Topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.

中文可以译做:JMS-Topic 队列基于“订阅-发布”模式,当操作者发布一条消息后,所有对这条消息感兴趣的订阅者都可以收到它——也就是说这条消息会被拷贝成多份,进行分发。只有当前“活动的”订阅者能够收到消息(换句话说,如果当前JMS-Topic队列中没有订阅者,这条消息将被丢弃)。

2、Queue

A JMS Queue implements load balancer semantics. A single message will be received by exactly one consumer. If there are no consumers available at the time the message is sent it will be kept until a consumer is available that can process the message. If a consumer receives a message and does not acknowledge it before closing then the message will be redelivered to another consumer. A queue can have many consumers with messages load balanced across the available consumers.

So Queues implement a reliable load balancer in JMS.

中文可以译做:JMS-Queue是一种“负载均衡模式”的实现。一个消息能且只能被一个消费者接受。如果当前JMS-Queue中没有任何的消费者,那么这条消息将会被Queue存储起来(实际应用中可以存储在磁盘上,也可以存储在数据库中,看软件的配置),直到有一个消费者连接上。另外,如果消费者在接受到消息后,在他断开与JMS-Queue连接之前,没有发送ack信息(可以是客户端手动发送,也可以是自动发送),那么这条消息将被发送给其他消费者。

以下表格摘自互联网上的资料,基本上把Queue和Topic这两种队列的不同特性说清楚了:

比较项目 Topic 模式队列 Queue 模式队列
工作模式 “订阅-发布”模式,如果当前没有订阅者,消息将会被丢弃。如果有多个订阅者,那么这些订阅者都会收到消息 “负载均衡”模式,如果当前没有消费者,消息也不会丢弃;如果有多个消费者,那么一条消息也只会发送给其中一个消费者,并且要求消费者ack信息。
有无状态 无状态 Queue数据默认会在mq服务器上以文件形式保存,比如Active MQ一般保存在$AMQ_HOME\data\kr-store\data下面。也可以配置成DB存储。
传递完整性 如果没有订阅者,消息会被丢弃 消息不会丢弃
处理效率 由于消息要按照订阅者的数量进行复制,所以处理性能会随着订阅者的增加而明显降低,并且还要结合不同消息协议自身的性能差异 由于一条消息只发送给一个消费者,所以就算消费者再多,性能也不会有明显降低。当然不同消息协议的具体性能也是有差异的

ActiveMQ系列—ActiveMQ中的Queue和Topics相关推荐

  1. ActiveMQ的官方中文文档

    1 JMS 在介绍ActiveMQ之前,首先简要介绍一下JMS规范. 1.1 JMS的基本构件 1.1.1 连接工厂 连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQCon ...

  2. ActiveMQ 在shareplex8中的使用

    ActiveMQ 下载:http://activemq.apache.org/activemq-580-release.html 以Linux (6.3为例) (1)ActiveMQ server安装 ...

  3. List 系列 ArrayList LinkedList CopyOnWriteArrayList Queue系列 ArrayDeque ConcurrentLinkedDeque LinkedBlo

    LinkedBlockingDeque作为一种阻塞双端队列,提供了队尾删除元素和队首插入元素的阻塞方法.该类在构造时一般需要指定容量,如果不指定,则最大容量为Integer.MAX_VALUE.另外, ...

  4. openresty开发系列29--openresty中发起http请求

    openresty开发系列29--openresty中发起http请求 有些场景是需要nginx在进行请求转发 用户浏览器请求url访问到nginx服务器,但此请求业务需要再次请求其他业务: 如用户请 ...

  5. ActiveMQ入门-ActiveMQ环境搭建

    http://activemq.apache.org/从阿帕奇的官方下载,ActiveMQ的环境搭建依赖于JDK,建议使用1.8 解压缩就能用,执行bin文件夹下面的可执行文件 ➜ ~ cd /Use ...

  6. 【ActiveMQ】ActiveMQ在CentOS的搭建与使用

    下载 到ActiveMQ官网,找到下载点. 目前, 官网为http://activemq.apache.org/. 我们下载目前最新的版本吧,当前的Linux版本下载地址之一为:http://apac ...

  7. shell编程系列7--shell中常用的工具find、locate、which、whereis

    shell编程系列7--shell中常用的工具find.locate.which.whereis1.文件查找之find命令语法格式:find [路径] [选项] [操作]选项 -name 根据文件名查 ...

  8. java date只保留年月日_Java日期时间API系列14-----Jdk8中日期API类,日期计算1,获取年月日时分秒等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  9. 2.3系列系统中不支持SimpleDateFormat作字段被序列化

    安卓问题记录:在2.3系列系统中不支持SimpleDateFormat作字段被序列化,使用时需要将SimpleDateFormat作临时变量使用. 转载于:https://www.cnblogs.co ...

最新文章

  1. 自动控制进行频率分析用计算机,自动控制7 用MATLAB进行系统-频率特性分析.doc...
  2. python turtle库画图案-Python如何使用turtle库绘制图形
  3. fatal error LNK1561: 必须定义入口点问题的我是这样解决的
  4. 初学JavaWeb需要的前端js,JavaScript是什么样的?
  5. char 与 String 相等比较
  6. Mysql数据库的分离和附加转
  7. flexsession禁用_flex(替代session过期)用户长时间不操作要求重新登录的处理
  8. X-UA-Compatible 解决IE浏览器样式不兼容问题
  9. OpenCV能调用的摄像头类型
  10. JavaScript模块知识理解
  11. adb命令logcat抓取日志
  12. 音乐类Demo资源大全
  13. 爱心的数学函数方程_笛卡尔的爱心函数
  14. 静态文件托管服务器,幽默:如何在静态文件托管服务器上使用数据库?
  15. MySQL Cluster 集群部署
  16. k8s calico-node错误日志 listen tcp: lookup localhost on ip:53: no such host
  17. Auto CAD:图纸材质图例(石材、瓷砖、细木工板、钢筋混凝土、 木材、夹板、黏土砖 镜面/玻璃、软质吸音层 、钢/金属、硬质吸音层、硬隔层、基层龙骨、陶质类、涂料粉刷层)的设置之详细攻略
  18. 【PHP】创蓝253云通信平台国际短信接口调用demo案例
  19. 单点故障--名词解释
  20. response setHeader 设置下载中文文件名乱码问题

热门文章

  1. 原创 使用docker 安装CVAT并使用
  2. tpc ds mysql_TPC-DS 生成数据
  3. Maven 常用镜像站地址
  4. 医学遗传学词汇英语术语英文(Glossary) 3
  5. centos7 telnet访问mysql出错Connection closed by foreign host
  6. 哔哩哔哩2021校招末班车来了!
  7. GE凝胶成像 AI600
  8. Java 报错Attempted read from closed stream
  9. 工厂模式--简单工厂模式--抽象工厂模式
  10. iOS - 颜色选择器