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 持久化,这个是必须的
浙公网安备 33010602011771号