AMQP-核心概念-3

本文参考以下链接摘录翻译:
https://www.rabbitmq.com/tutorials/amqp-concepts

队列(Queues)

AMQP 0-9-1模型中的队列和其他消息任务队列系统中的队列非常相似:它们用于存储被应用消费的消息。队列和交换机有一些相同的属性,但也有一些额外的属性:

  • 名字(Name)
  • 可持久化(Durable)(让队列在消息代理重启后依然存在)
  • 排他性(Exclusive)(让队列只被一个连接使用,当这个连接关闭时,该队列会被删除)
  • 自动删除(Auto-delete)(当最后一个消费者取消订阅,该队列被删除)
  • 参数(Arguments)(可选的:用于插件和消息代理专用的一些功能,如消息存活时间【TTL】,队列长度限制,等)

使用一个队列前,必须先声明它。声明一个队列会创建该队列,如果该队列不存在的话。如果一个队列已经存在且存在的队列的属性和声明中的属性一致,声明该队列将不会有任何效果。如果存在的队列的属性和声明中的属性不一致,一个通道级别的异常会抛出【错误码406 前置条件失败(PRECONDITION_FAILED)】

队列名字(Queue Names)

应用可以给队列设置名字或者让消息代理帮队列生成一个名字。队列的名字最长可以包含255个UTF-8字符。消息代理可以代替应用为队列生成一个唯一的名字。要使用这个功能,设置队列的名字为空字符串。生成的名字会随队列声明响应一起返回给客户端。

以"amq."开头的队列名保留为消息代理内部使用。尝试声明以“amq.”开头的队列会抛出通道级别的403异常(访问拒绝)。

队列持久性(Queue Duribility)

在AMQP 0-9-1中,队列可以声明为持久化的或临时的。一个持久化的队列的元数据存储在磁盘上,然而一个临时队列的元数据存储在内存中,如果可能的话。

若要设置消息的持久性和临时性,需要在消息发布时设置。

在持久化很重要的环境和用例中,应用必须使用持久化的队列,且确保发布者发布消息时将消息设为持久化的。

待续。。。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值