RabbitMQ Exchange(交换器) 和Queue(队列) 的属性

RabbitMQ 后台管理界面中添加Exchange的时候针对一些属性定义的解释:

6f4a960fe8c0367e71f9bc891a555a8fa5f.jpg

  • Name:队列名称
  • Durablity:持久化选项,Durable(持久化保存),Transient(即时保存), 持久化保存会在RabbitMQ宕机或者重启后,未消费的消息仍然存在,即时保存在RabbitMQ宕机或者重启后交换机会不存在。需要重新定义该Exchange。
  • Auto-delete: 为true时,当没有queue绑定在此exchange时,会自动删掉此exchange.
  • Arguments:为插件和broker-specific feature使用。
  • Internal (内部的): 如果设置为YES,表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定。 设置为NO则不是内部使用的,可以用于client客户端直接发布消息
  • Type:
    • Direct: routingKey与bindingKey完全匹配
    • Fanout: 广播形式与绑定关系无关
    • Topic:routingKey与bindingKey正则匹配 如:routingKey=user.news / user.weather 与 bindingKey = user.# 匹配 。 符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”

b504005e3999d9c0d453b0ea321e733ef41.jpg

Name:队列的名称

Durability(持久性):如果启用,队列将会在server重启前后都有效。 

Auto-delete : If yes, the queue will delete itself after at least one consumer has connected, and then all consumers have disconnected.  如果启用,当队列接受consumer链接后,队列将会在所有的消费者停止使用之后自动删除掉自身。

Arguments:

x-message-ttl:

通过在 queue.declare 中设置 x-message-ttl 参数,可以控制被 publish 到 queue 中的 message 被丢弃前能够存活的时间。当某个 message 在 queue 留存的时间超过了配置的 TTL 值时,我们说该 message “已死”。当一个 message 被路由到多个 queue 中时,其可以在不同的时间“死掉”。

服务器会保证“死掉”的 message 将不会被包括在任何的 basic.get-ok 或 basic.deliver 方法中。更进一步,服务器将努力在 TTL 到期或到期后的短时间内处理掉该 message 。 

参数 x-message-ttl 的值 必须是非负 32 位整数 (0 <= n <= 2^32-1) ,以毫秒为单位表示 TTL 的值。这样,值 1000 表示存在于 queue 中的当前 message 将最多只存活 1 秒钟,除非其被投递到 consumer 上。实参可以是以下 AMQP 类型:short-short-int 、short-int 、long-int 或者 long-long-int 。 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/LucasZhu/blog/1838105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值