gpt4 book ai didi

rabbitmq - 当消息发布到没有订阅者的队列上时会发生什么?

转载 作者:行者123 更新时间:2023-12-02 22:11:09 30 4
gpt4 key购买 nike

这是我在采访中被问到的。

当上午 10 点在没有订阅者的队列上发布消息时会发生什么?具有适当过滤器的订阅者在上午 10.02 订阅同一个队列。当订阅者在消息到达代理后订阅消息时,消息是否会被传递(我的意思是它是否存储在内存中直到找到订阅者)?什么是默认行为? JMS、STOMP 和 AMQP 标准也有不同吗?

最佳答案

AMQP代理中,消息要么传递给订阅队列的消费者,要么当消费者按需从队列中获取/拉取消息时。默认情况下,即使当前没有订阅者处于事件状态,消息也会保留在队列中。如果消息是持久性消息,则该消息将存储在磁盘上;如果不是持久性消息,则将存储在内存中。 https://www.rabbitmq.com/tutorials/amqp-concepts.html

STOMP:RabbitMQ STOMP 适配器支持多种不同的目标类型。不存在订阅者时发送的消息将排队,直到订阅者连接到队列为止(而当没有连接的订阅者时,主题将丢弃消息)。 https://www.rabbitmq.com/stomp.html

JMS:JMS是一个API,它不使用任何协议(protocol)。另一方面,AMQP 是消息传递客户端和消息传递服务器之间的协议(protocol)。 JMS 客户端可以使用 AMQP 作为与消息传递服务器通信的协议(protocol)。 (查看这篇文章以了解有关该主题的更多信息 https://spring.io/understanding/AMQP )

但是,发送到队列的消息将保留在队列中,直到该队列的消息使用者使用它们为止。 http://docs.oracle.com/javaee/6/tutorial/doc/bnceh.htmlhttps://en.wikipedia.org/wiki/Java_Message_Service

关于rabbitmq - 当消息发布到没有订阅者的队列上时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42103859/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com