`

ActivitiMQ中Topic和Queue的区别

    博客分类:
  • JAVA
 
阅读更多

Jms规范里的两种message传输方式Topic和Queue,两者的对比如下表():

 

 

  Topic Queue
概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对点
有无状态 topic数据默认不落地,是无状态的。

Queue数据默认会在mq服务器上以文件形式保存,比如Active MQ一般保存在$AMQ_HOME\data\kr-store\data下面。也可以配置成DB存储。

完整性保障 并不保证publisher发布的每条数据,Subscriber都能接受到。 Queue保证每条数据都能被receiver接收。
消息是否会丢失 一般来说publisher发布消息到某一个topic时,只有正在监听该topic地址的sub能够接收到消息;如果没有sub在监听,该topic就丢失了。 Sender发送消息到目标Queue,receiver可以异步接收这个Queue上的消息。Queue上的消息如果暂时没有receiver来取,也不会丢失。
消息发布接收策略 一对多的消息发布接收策略,监听同一个topic地址的多个sub都能收到publisher发送的消息。Sub接收完通知mq服务器 一对一的消息发布接收策略,一个sender发送的消息,只能有一个receiver接收。receiver接收完后,通知mq服务器已接收,mq服务器对queue里的消息采取删除或其他操作。
分享到:
评论

相关推荐

    Queue与Topic的比较

    Queue 和 Topic 是 JMS(Java Message Service)中两种基本的消息模式,分别对应 Point-to-Point 和 Publish/Subscribe 模式。 Queue 模式 在 Queue 模式中,一条消息仅能被一个消费者(Consumer)接收。如果在...

    消息队列 Queue与Topic区别.docx

    综上所述,Queue与Topic的主要区别在于消息的传递方式和处理方式。选择哪种消息传递模型取决于具体的业务需求和应用场景。例如,如果需要实现消息的一对多广播功能,则更适合采用基于Topic的发布/订阅模型;如果需要...

    JMS中topic和queue两种实现方式

    JMS主要提供了两种消息模式:主题(Topic)和队列(Queue),这两种模式在实现方式和功能上有所不同。 1. 主题(Topic): - **发布/订阅模型**:主题基于发布/订阅模型,其中多个生产者可以发布消息到一个特定的...

    Apache ActiveMQ Queue Topic 详解

    ### Apache ActiveMQ Queue & Topic 详解 #### 一、特性及优势 Apache ActiveMQ 是一款高性能、功能丰富的消息中间件,具有以下显著特点: 1. **实现 JMS 1.1 规范**:支持 J2EE 1.4 及以上版本,这意味着它可以...

    spring boot jsm ibmmq topic queue

    标题"spring boot jsm ibmmq topic queue"涉及到的是如何在Spring Boot项目中使用JMS与IBM MQ进行交互,包括发布/订阅模型(Topic)和点对点模型(Queue)两种方式。下面将详细解释这两个概念以及如何在Spring Boot...

    spring下queue与非持久订阅topic实现

    在上述代码中,`durable = "false"`表示创建一个非持久化的Queue,而`exchange`和`key`定义了Topic和Queue的绑定,使得消息能够路由到正确的消费者。 在实际项目中,Queue常用于处理有序和一对一的消息传递,例如...

    C# MessageQueue示例

    MessageQueue,又称消息队列,是C#中处理异步通信和解耦组件的重要技术。它允许应用程序之间通过消息传递数据,而无需彼此直接交互。下面将详细介绍C#中的MessageQueue以及如何使用它来发送和接收消息。 1. **...

    ActiveMQ的queue和topic两种模式的示例演示参照.pdf

    在ActiveMQ中,有两种主要的消息传递模式:Queue和Topic。这两种模式都是基于JMS(Java Message Service)标准,用于在分布式环境中实现异步通信。理解它们的区别和应用场景至关重要。 **Queue(队列)模式** ...

    C语言头文件 QUEUE.H

    C语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言头文件 QUEUE.HC语言...

    spring集成activemq演示queue和topic 持久化

    首先,让我们了解`Queue`和`Topic`的区别。在消息队列(Queue)中,每个消息仅被一个消费者接收,遵循先进先出(FIFO)原则,适合一对一通信。而主题(Topic)则支持一对多广播,多个订阅者可以接收到相同的消息,...

    STL中priority_queue

    STL 中的 priority_queue priority_queue 是 STL 中的一种容器,可以实现优先级队列的功能。下面,我们将详细介绍 priority_queue 的使用方法和实现原理。 priority_queue 的基本概念 priority_queue 是一种特殊...

    spring下queue与持久订阅topic实现

    在Spring框架中,消息队列(Message Queue,简称MQ)是一种重要的组件,它允许应用程序之间进行异步通信,提高系统的可扩展性和解耦性。在本主题中,我们将深入探讨如何在Spring环境下实现基于Queue的通信以及持久...

    rabbitmq代理配置和编码1

    在RabbitMQ中,代理(或称Exchange)配置和编码是消息传递的核心组成部分。RabbitMQ是一个开源的消息队列系统,它使用代理来路由消息到正确的队列,从而实现不同应用之间的异步通信。以下是对标题和描述中提到的知识...

    vc++中队列deque和queue的使用

    在VC++编程环境中,`deque`(双端队列)和`queue`是两种常用的容器,它们都属于标准模板库(STL)的一部分,用于处理数据的存储和操作。这两个容器在实现队列数据结构时各有特点,适用于不同的场景。在VS2010中,...

    C++ Queue(带上限的)

    在C++编程语言中,`Queue`是一种常用的数据结构,它遵循“先进先出”(First In First Out, FIFO)的原则。通常,C++标准库提供了`<queue>`头文件来实现基本的队列操作,但这个标准队列并没有设置上限。在某些特定...

    活用Android的Message Queue

    在Android开发中,Message Queue是一种重要的机制,用于在不同线程间进行异步通信和任务调度。理解并熟练运用Message Queue、Looper和Handler是构建高效、响应性良好的Android应用的关键。 1. **Message Queue...

    springboot2整合activemq的demo内含queue消息和topic消息

    - demo项目中应该包含生产者和消费者的相关代码,演示如何创建消息、发送到Queue或Topic,以及如何接收和处理消息。 - 可能包含`@JmsListener`注解用于定义消息监听器,以及`JmsTemplate`用于发送消息。 8. **...

    thinkphp5.0.24+queue 队列信息完整源码

    本文将详细探讨在ThinkPHP5.0.24版本中如何使用Queue队列,以及相关源码分析。 一、队列概念与作用 队列是一种先进先出(FIFO)的数据结构,常用于处理批量数据或者需要后台执行的任务,如邮件发送、日志记录、数据...

    angular-topic-queue:带有主题路由和消息确认的角度队列

    带有主题路由和确认的Angular队列安装凉亭bower install angluar-topic-queue --save 将ngTopicQueue添加到您的Angular应用中。 angular .module('app', [ 'ngAnimate', 'ngCookies', 'ngResource', 'ngRoute', '...

    前端开源库-promise-queue-plus

    在"promise-queue-plus-master"这个压缩包中,包含了Promise Queue Plus的源代码、文档、示例以及可能的测试用例。开发者可以通过阅读源码了解其内部实现原理,参考文档学习如何在项目中使用,并通过示例快速上手。...

Global site tag (gtag.js) - Google Analytics