RabbitMQ

Exchange.Name

Exchange 名称。以 amq.开头的为保留字段,因此不能使用。例如:amq.test。

exchange.Type

队列交换器或路由
exchange 共有 4 种类型

  • direct
    routingKey 相等时才会匹配
  • topic
    匹配 routingKey,但可以有*#通配符进行匹配,其中*表示匹配一个单词, #表示匹配无或多个单词
  • fanout
    路由到所有绑定的队列中,无需匹配 routingKey
  • header
    根据 header 中的 arguments 判断。x-match为特殊 header,all表示必须匹配所有 header、any表示只需匹配任意一个 header

exchange.Durability

队列持久化
Durability 共有两种类型

exchange 持久化并非消息持久化,消息是否持久化取决于生产 queue 时的设置

  • Durable
    持久化,会将队列存放在硬盘中,即使重启服务器或全部消费者断开后 exchange 依然存在
  • Transient
    队列非持久化,重启服务器或全部消费者断开后 exchange 将消失

exchange.Auto delete

消息自动删除

  • Yes
    服务器重启或全部消费者断开后消息将会被删除
  • No
    服务器重启或全部消费者断开后消息仍将保存

exchange.Internal

是否为内部专用 exchange

  • Yes
    内建类型,用于 Exchange 和 Exchange 之间的绑定。 不能往该 exchange 生产消息
  • No
    非内建类型,用于 Exchange 和 Queue 之间的绑定。可以往该 exchange 生产消息

exchange.Arguments

AMQP 协议留给 AMQP 实现做扩展使用

Queue

创建 Queue

  • Type
    Queue 类型
  • Durability
    Queue 是否持久化
  • Auto delete
    Queue 是否在服务器重启后或全部消费者断开 exchange 后自动删除
  • Arguments
    Queue 的参数设置,可用于设置死信 Exchange、死信 Routing Key 和消息过期时间。
    • DeadLetterExchange:指定死信消息发往的 Exchange。
    • DeadLetterRoutingKey:指定死信消息的 Routing Key,即死信 Exchange 会将消息发往至匹配该死信 Routing Key 的 Binding Key 所对应的 Queue。
    • MessageTTL:消息过期时间,单位毫秒(ms)。超过指定时间段内还未被消费的消息是死信消息,该消息将会被发往死信 Exchange

重试机制

消息队列 RabbitMQ 版服务端有默认的消息重试机制,不支持您在 Consumer 客户端重新配置消息重试机制。消息队列 RabbitMQ 版服务端默认的消息重试机制如下:

  • 消费失败,即 Consumer 客户端一分钟内没有应答消息,则触发消息重试。如果您没有开启 Consumer 客户端消费消息,就不会触发消息重试。
  • 重试期间,任何一次消费成功,即 Consumer 客户端应答消息,则立即停止消息重试。
  • 重试间隔时间为一分钟。
  • 重试最多 16 次。超过 16 次,则停止重试。您可以选择:
    • 丢弃消息:如果您没有为重试失败的消息所在的 Queue 配置死信 Exchange,则消息重试失败后被丢弃。
    • 将消息发送至死信 Exchange:如果您为重试失败的消息所在的 Queue 配置了死信 Exchange,则消息重试失败后被发送到死信 Exchange,并根据 RoutingKey 和 Binding Key 被路由至目标 Queue。目标 Queue 中的消息支持查询和导出。如何配置死信 Exchange,请参见死信 Exchange。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×