JMS:Java Message Server
JMS消息服务器有很多:ActiveMQ、Jboss MQ、Open MQ、RabbitMQ、ZeroMQ等等
queue与topic的技术特点对比
|
Topic |
|
概要 |
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里的消息采取删除或其他操作。 |
Topic和queue的最大区别在于topic是以广播的形式,通知所有在线监听的客户端有新的消息,没有监听的客户端将收不到消息;而queue则是以点对点的形式通知多个处于监听状态的客户端中的一个。
相关推荐
在ActiveMQ中,有两种主要的消息传递模式:Queue和Topic。这两种模式都是基于JMS(Java Message Service)标准,用于在分布式环境中实现异步通信。理解它们的区别和应用场景至关重要。 **Queue(队列)模式** ...
它提供了异步处理机制,使得消息的发送者无需等待接收者处理完毕即可继续执行,从而提高了系统的整体效率和可靠性。 JMS(Java Message Service)是一种提供消息中间件的API标准,用于在两个应用程序之间或者分布式...
Queue 和 Topic 是 JMS(Java Message Service)中两种基本的消息模式,分别对应 Point-to-Point 和 Publish/Subscribe 模式。 Queue 模式 在 Queue 模式中,一条消息仅能被一个消费者(Consumer)接收。如果在...
除了虚拟Topic外,ActiveMQ还支持另一种类似但功能略有不同的概念——复合队列(Composite Queue)。两者的主要区别在于: - **虚拟Topic**:主要用于将一个Topic的消息转发到多个目的地(Topic或队列),适合于...
在本文中,我们将深入探讨如何将SpringBoot与Apache ActiveMQ集成,特别关注Queue和Topic两种消息传递模式。首先,我们来了解一下ActiveMQ的基本概念和功能。 Apache ActiveMQ是一款开源的消息中间件,由Apache软件...
通过`@Value`注入队列和主题的名称,并分别定义`ActiveMQQueue`和`ActiveMQTopic`的@Bean,如以下示例所示: ```java @Component @EnableJms public class ConfigBean { @Value("${myqueue}") private String ...
在分布式系统中,消息队列(Message Queue)作为一种中间件,起到了解耦、异步处理以及负载均衡的作用。Apache ActiveMQ 是一个非常流行的开源消息代理,它实现了多种消息协议,如OpenWire、STOMP、AMQP和MQTT等。本...
本文将深入探讨ActiveMQ中的两种主要消息模式:队列(Queue)和主题(Topic)。 1. **队列(Queue)模式**: 队列模式遵循“发布/订阅”模型,但是一对一的。每个消息只能被一个消费者接收并处理。当一个消息被...
JMS主要提供了两种消息模式:主题(Topic)和队列(Queue),这两种模式在实现方式和功能上有所不同。 1. 主题(Topic): - **发布/订阅模型**:主题基于发布/订阅模型,其中多个生产者可以发布消息到一个特定的...
4. **消息类型**:JMS支持两种消息模型:点对点(Queue)和发布/订阅(Topic)。Queue模式下,消息会被一个消费者接收并删除;Topic模式下,消息可以被多个订阅者接收。 5. **消息的持久化**:ActiveMQ允许配置消息...
2. **消息模型**:掌握点对点(Queue)和发布/订阅(Topic)两种消息模型。点对点模型确保每个消息仅被一个消费者接收,而发布/订阅模型允许多个订阅者接收相同的消息。 3. **消息类型**:理解JMS提供的不同消息...
ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。... JMS中定义了两种消息模型: 点对点(point to point, queue) 发布/订阅(publish/subscribe,topic)。
为了确保高可用性和可靠性,ActiveMQ支持主题(Topics)和队列(Queues)两种模型。主题采用发布/订阅模式,多订阅者可以同时接收相同的消息;而队列遵循先进先出(FIFO)原则,每个消息仅被一个消费者接收。此外,...
Topic是一种发布/订阅模式的消息传递方式,允许多个消费者订阅同一个Topic,当生产者发布一条消息时,所有订阅了该Topic的消费者都会收到这条消息。这种方式适用于广播消息或者需要一对多通信的情景。 在ActiveMQ中...
为了更好地理解ActiveMQ的功能,可通过运行附带的示例程序来体验其消息处理机制。Queue消息示例演示了典型的点对点通信模式,生产者与消费者之间进行消息的发送与接收,而Topic消息示例则展示了发布/订阅模型,一条...
这两种模式对应不同的应用场景,其中发布/订阅模式下又有非持久订阅和持久化订阅两种消息处理方式。 Point-to-Point消息模式下的开发流程涉及生产者和消费者的开发。生产者需要创建JMS连接,基于该连接创建会话,...
4. **目的地**:消息的接收方,分为队列(Queue)和主题(Topic)两种类型。队列遵循点对点模型,每个消息仅由一个消费者接收;主题遵循发布/订阅模型,多个订阅者可以接收到同一消息。 5. **连接**(Connection):...
6. **实现消息的发布订阅模式**:在ActiveMQ中,有两种消息传递模式:点对点(Queue)和发布订阅(Topic)。点对点模式下,每个消息只有一个消费者;发布订阅模式下,一个消息可以被多个消费者(订阅者)接收。在...
5. **消息队列和主题**:ActiveMQ提供两种消息模式:点对点(Queue)和发布/订阅(Topic)。点对点模式中,每个消息只有一个消费者,而发布/订阅模式下,一个消息可以被多个订阅者接收。 6. **消息过滤**:ActiveMQ...
3. **消息模型**:ActiveMQ支持两种消息模型——点对点(Queue)和发布/订阅(Topic)。点对点模型适用于一对一通信,而发布/订阅模型适用于一对多广播式通信。 4. **协议支持**:ActiveMQ不仅支持JMS,还支持AMQP...