rabbitmq笔记

核心概念

  • connection
  • channel
  • vhost
  • exchange
  • queue
  • producer
  • consumer
  • policy

exchange

  • fanout
  • direct
  • topic
  • header

queue

  • classic
    • version1
    • version2
  • Quorum
    提供更好的数据安全的保障,x-queue-type
  • Stream
    由消费端标记消费进度
    • x-queue-stream
    • x-max-length-bytes
    • x-stream-max-segment-size-bytes
    • consumer x-stream-offset
      • first: 从日志中第一个可消费的消息
      • last: 消费消息队列中最后一个消息
      • next: 相当于不指定offset
      • Offset: 一个数字型偏移量
      • Timestamp: 一个代表时间的Data类型变量

bind

代表queue与exchange之间路由关系

consumer

  • 推模式
    推荐,由服务端通知消费端
  • 拉模式
    由消费端主动发起,执行完毕,需主动关闭

工作模式

worker queue

publisher -> queue -> consumers

publish/subscribe(广播)

publisher -> exchange(fanout) -> queue -> consumers

exchange(direct), 基于消息内容的routingKey

publisher -> exchange(direct) -> bind(routineKey) -> queue -> consumers

exchange(topic), 基于消息内容的routineKey(单词用.隔开,*代表一个具体的单词, #代表0或多个单词)

publisher -> exchange(topic) -> bind(routineKey) -> queue -> consumers

exchange(header), 基于消息内容的headers

  • x-match: all
  • x-match: any

publisher confirms发送者消息确认

死信队列

可理解为正常队列的垃圾箱,也是可以被正常消费的队列,可用于实现延时队列

    producer -> queue(with dead exchange) -> exchange -> queue(normal) -> consumer
  • x-dead-letter-exchange: mirror.exchange 对应的死信交换机
  • x-dead-routing-key: mirro.messageExchange1.messageQueue1 死信交换机routing-key
  • x-message-ttl: 3000 消息过期时间
  • durable: true 持久化,这个是必须的
posted @ 2025-06-01 13:55  JQShi  阅读(17)  评论(0)    收藏  举报