Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ActiveMQ教程,详解ActiveMQ中Queue与Topic的区别

ActiveMQ教程,详解ActiveMQ中Queue与Topic的区别

作者头像
用户1289394
发布于 2021-05-31 08:08:41
发布于 2021-05-31 08:08:41
1.5K0
举报
文章被收录于专栏:Java学习网Java学习网

队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:

1、点对点(point-to-point,简称PTP)Queue消息传递模型:

通过该消息传递模型,一个应用程序(即消息生产者)可以向另外一个应用程序(即消息消费者)发送消息。在此传递模型中,消息目的地类型是队列(即Destination接口实现类实例由Session接口实现类实例通过调用其createQueue方法并传入队列名称而创建)。消息首先被传送至消息服务器端特定的队列中,然后从此对列中将消息传送至对此队列进行监听的某个消费者。同一个队列可以关联多个消息生产者和消息消费者,但一条消息仅能传递给一个消息消费者。如果多个消息消费者正在监听队列上的消息,,JMS消息服务器将根据“先来者优先”的原则确定由哪个消息消费者接收下一条消息。如果没有消息消费者在监听队列,消息将保留在队列中,直至消息消费者连接到队列为止。这种消息传递模型是传统意义上的懒模型或轮询模型。在此模型中,消息不是自动推动给消息消费者的,而是要由消息消费者从队列中请求获得。

2、发布/订阅(publish/subscribe,简称pub/sub)Topic消息传递模型:

通过该消息传递模型,应用程序能够将一条消息发送给多个消息消费者。在此传送模型中,消息目的地类型是主题(即Destination接口实现类实例由Session接口实现类实例通过调用其createTopic方法并传入主题名称而创建)。消息首先由消息生产者发布至消息服务器中特定的主题中,然后由消息服务器将消息传送至所有已订阅此主题的消费者。主题目标也支持长期订阅。长期订阅表示消费者已注册了主题目标,但在消息到达目标时该消费者可以处于非活动状态。当消费者再次处于活动状态时,将会接收该消息。如果消费者均没有注册某个主题目标,该主题只保留注册了长期订阅的非活动消费者的消息。与PTP消息传递模型不同,pub/sub消息传递模型允许多个主题订阅者接收同一条消息。JMS一直保留消息,直至所有主题订阅者都接收到消息为止。pub/sub消息传递模型基本上是一个推模型。在该模型中,消息会自动广播,消息消费者无须通过主动请求或轮询主题的方法来获得新的消息。

具体区别对比如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ActiveMQ介绍
1、ActiveMQ服务器工作模型       通过ActiveMQ消息服务交换消息。消息生产者将消息发送至消息服务,消息消费者则从消息服务接收这些消息。这些消息传送操作是使用一组实现 ActiveMQ应用编程接口 (API) 的对象来执行的。       ActiveMQ客户端使用 ConnectionFactory 对象创建一个连接,向消息服务发送消息以及从消息服务接收消息均是通过此连接来进行。Connection 是客户端与消息服务的活动连接。创建连接时,将分配通信资源以及验证客户端。这是一个相当重要
小帅丶
2018/02/08
1.2K0
ActiveMQ详解(2)——JMS基本概念
ActiveMQ详解(2)——JMS基本概念 一. JMS简介 JMS:Java Message Service,Java消息服务,是JavaEE的技术之一。JMS中定义了Java语言访问消息中间件的接口,但是并没有提供具体的实现。实现了JMS接口的消息中间件成为JMS Provider,ActiveMQ就是其中典型的、优秀的实现者。由于ActiveMQ的操作中涉及到了众多JMS相关的概念,因此本节对JMS基本概念进行详细介绍。 二. JMS基本概念 JMS Provider:实现了JMS规范和接口的消息中
张申傲
2020/09/03
5170
JMS中间件ActiveMQ详解
Java Message Service(JMS)是SUN提出的旨在统一各种MOM(Message-Oriented Middleware )系统接口的规范,它包含点对点(Point to Point,PTP)和发布/订阅(Publish/Subscribe,pub/sub)两种消息模型,提供可靠消息传输、事务和消息过滤等机制。
烂猪皮
2018/08/03
1.7K0
JMS中间件ActiveMQ详解
消息中间之ActiveMQ
JMS(JAVA Message Service,java消息服务)是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS(JAVA Message Service,java消息服务)API是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。
HUC思梦
2020/09/03
2.2K0
消息中间之ActiveMQ
ActiveMQ详细入门教程系列(一)
两个系统或两个客户端之间进行消息传送,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
全栈程序员站长
2021/04/07
1.2K0
消息队列——ActiveMQ使用及原理浅析
什么是消息中间件?随着业务的急速增长以及分布式架构的逐渐兴起,首先要考虑的就是如何高效的在各节点之间传递消息,其次要考虑的是流量洪峰时如何削减系统的压力以及跨平台消息的传输等问题,消息中间件就可以帮我们解决以上问题。而消息队列产品众多,我们该如何选择呢?本系列文章主要针对目前使用最多的ActiveMQ、Kafka、RabbitMQ进行讲解说明。
夜勿语
2020/09/07
4.9K0
ActiveMQ的安装与使用。
4、ActiveMQ的安装。官方网址:http://activemq.apache.org/
别先生
2019/09/29
1.9K0
ActiveMQ的安装与使用。
深入了解ActiveMQ!
某一天,系统B的负责人告诉系统A的负责人,现在系统B的SystemBNeed2do(String userId)这个接口不再使用了,让系统A别去调它了。 于是,系统A的负责人说"好的,那我就不调用你了。",于是就把调用系统B接口的代码给删掉了。代码变成这样了:
JAVA日知录
2020/09/08
1.2K0
深入了解ActiveMQ!
ActiveMQ入门系列三:发布/订阅模式
在上一篇《ActiveMQ入门系列二:入门代码实例(点对点模式)》中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点模式并用代码实例进行说明,今天就介绍下发布/订阅模式。
全栈程序员站长
2022/07/18
6720
ActiveMQ入门系列三:发布/订阅模式
flea-msg使用之JMS初识
Java 消息服务【Java Message Service】,又简称 JMS,它是 Java 平台上有关面向消息中间件(MOM)的技术规范。
huazie
2024/06/12
2930
flea-msg使用之JMS初识
ActiveMQ从入门到精通(一)JMSActiveMQ QuickStartWrite Code 4 ActiveMQ在说说Session关于消息的priority/ttl/deliveryMode
这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧!
用户2890438
2018/08/21
8810
ActiveMQ从入门到精通(一)JMSActiveMQ QuickStartWrite Code 4 ActiveMQ在说说Session关于消息的priority/ttl/deliveryMode
ActiveMQ入门系列二:入门代码实例(点对点模式)[通俗易懂]
在上一篇《ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)》中,大致介绍了ActiveMQ和一些概念,并下载、安装、启动他,还访问了他的控制台页面。
全栈程序员站长
2022/07/18
5770
ActiveMQ入门系列二:入门代码实例(点对点模式)[通俗易懂]
深入浅出JMS(一)——JMS简单介绍
假设手机仅仅能进行实时通话,没有留言和短信功能会怎么样?一个电话打过来,正好没有来得及接上,那么这个电话要传递的信息肯定就收不到了。为什么不能先将信息存下来,当用户须要查看信息的时候再去获得信息呢?伴随着这个疑惑,短息和留言应运而生,不管手机是否开机、是否未及时接到,我们都能得到当中的信息。JMS提供了相似这种功能,本章我们将系统的学习JMS中的相关重要内容。
全栈程序员站长
2022/07/11
8560
深入浅出JMS(一)——JMS简单介绍
ActiveMQ基础学习简单记录
JMS即Java Message Service,是JavaEE的消息服务接口。JMS主要有两个版本:1.1和2.0。2.0和1.1相比,主要是简化了收发消息的代码。
大忽悠爱学习
2023/05/23
1.8K0
ActiveMQ基础学习简单记录
Apache RocketMQ之JMS基本概念及使用
Apache RocketMQ之JMS基本概念及使用:https://www.jianshu.com/p/d2e3fd77c4f4 Apache RocketMQ 基础概念及架构解析:https://www.jianshu.com/p/95ab928960b3 Apache RocketMQ 的基础特性介绍:https://www.jianshu.com/p/570680b32590 Apache RocketMQ 集群搭建(两主两从):https://www.jianshu.com/p/b090138cf52c Apache RocketMQ 刷盘策略与复制策略: https://www.jianshu.com/p/d66b381428bb
zoro
2019/04/11
2.7K0
Apache RocketMQ之JMS基本概念及使用
JMS--ActiveMQ的简单使用
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有 Producer(生产者)、Consumer(消费者)。消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。
宋先生
2019/07/18
1.2K0
ActiveMQ
场景说明:用户注册,需要执行三个业务逻辑,分别为写入用户表,发注册邮件以及注册短信。
JokerDJ
2023/11/27
5950
ActiveMQ
ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)
大意是:兼容性好并且功能强大的开源多协议消息中间件,那具体是怎么体现的呢? 1.兼容性好: ActiveMQ可以很容易内嵌到使用Spring的系统里面去, 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 2.功能强大: 支持通过JDBC和journal提供高速的消息持久化, 支持客户端-服务器,点对点 支持Ajax 支持与Axis的整合, WebServices 可以很容易的调用内嵌JMS provider进行测试 从设计上保证了高性能的集群
全栈程序员站长
2022/07/18
1.3K0
ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)
MQ 系列之 ActiveMQ 基本使用
  activemq-client 通过创建 ConnectionFactory 建立到 ActveMQ 的连接,连接工厂封装了一组连接配置参数,这组参数在配置 ActiveMQ 时已经定义,例如 brokerURL 参数,此参数传入的是 ActiveMQ 服务地址和端口,支持 openwire 协议的默认连接为 tcp://localhost:61616,支持 stomp 协议的默认连接为 tcp://localhost:61613。ActiveMQConnectionFactory 构造方法:   ♞ ActiveMQConnectionFactory();   ♞ ActiveMQConnectionFactory(String brokerURL);   ♞ ActiveMQConnectionFactory(String userName, String password, String brokerURL);   ♞ ActiveMQConnectionFactory(String userName, String password, URI brokerURL);   ♞ ActiveMQConnectionFactory(URI brokerURL);
Demo_Null
2020/09/28
1.5K0
MQ 系列之 ActiveMQ 基本使用
Message Queue消息队列基本原理
如果需要和新的系统建立通信或删除已建立的通信,都需要修改代码,这种方案显然耦合度很高。
Java宝典
2021/01/14
3.4K0
Message Queue消息队列基本原理
相关推荐
ActiveMQ介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档