夫天地者,万物之逆旅;光阴者,百代之过客。而浮生若梦,为欢几何?
RabbitMQ 入门篇之—Queue参数详解

Auto delete

官方的解释:If yes, the queue will delete itself after at least one consumer has connected, and then all consumers have disconnected. 

中文意思:队列中的消息在被最后一个消费者消费后队列将自动删除,并且断开与其它消费者之间的连接。

Message TTL

官方解释:How long a message published to a queue can live before it is discarded (milliseconds). (Sets the "x-message-ttl" argument.) 

中文意思:消息在队列中的保存时间(过期时间),超过这个时间,消息将被删除。

Auto expire

官方解释:How long a queue can be unused for before it is automatically deleted (milliseconds). (Sets the "x-expires" argument.)

中文意思:在队列被自动删除之前还可以延迟使用多久。该属性是建立在 Auto delete 为true的前提下。

Max length

官方解释:How many (ready) messages a queue can contain before it starts to drop them from its head. (Sets the "x-max-length" argument.)

中文意思:队列可以包含多少(ready)消息,超出后才开始从头部删除先入队列的消息。

Maximum priority

官方解释:Maximum number of priority levels for the queue to support; if not set, the queue will not support message priorities. (Sets the "x-max-priority" argument.) 

中文意思:设置队列的优先级,如果没有设置,队列将不支持优先级。

大白话将就是说我们在往队列中推送消息的时候可以单独设置这条消息的优先级,优先级越高,越容易被第一时间处理(消费)。典型的业务应用场景就是催单。

Lazy mode

官方解释:

Set the queue into lazy mode, keeping as many messages as possible on disk to reduce RAM usage; if not set, the queue will keep an in-memory cache to deliver messages as fast as possible.

(Sets the "x-queue-mode" argument.)

中文意思:设置队列为延迟模式,这将导致队列中的消息保存在磁盘中,消息被消费的时候从磁盘获取而不是RAM。如果队列中的消息量大,可以使用这种配置,减少RAM的占用。值得注意的是,虽然设置延迟模式后消息会被保存在磁盘中,但是如果消息没有设置持久化属性,那么RabbitMQ重启后消息还是会丢失。

Dead letter exchange

官方解释:

Optional name of an exchange to which messages will be republished if they are rejected or expire.

(Sets the "x-dead-letter-exchange" argument.)

中文意思:如果队列中的消息被拒绝或过期,则可以根据设置的交换机对消息进行转发,重新发布。典型的业务应用场景就是订单支付,如果未在规定时间内完成支付,则可将订单推送到其他业务队列处理。

说在最后

上面介绍的队列设置参数,在图形界面控制台可以很容易实现和测试,博友有兴趣可以自己试一试。代码上的演示我们会在本系列的最后进行统一演示,敬请期待。

作者:暗夜余晖

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

1

支持

0

反对

posted @2017-7-31  拜读(3468)

评论列表

评论内容:



喜欢请打赏

支付宝 微信

请放心支付