rabbitmq核心
核心特性
- 消息确认机制
为了确保消息成功被消费,提供了消息确认机制,当消费者接收到消息后,比如要给一个反馈:- ack:消费成功
- nack:消费失败
- reject:拒接
- 消息过期机制
可以给每条消息指定一个有效期,一段时间内未被消费者处理,就过期了。
适合场景:清理过期数据,模拟延迟队列的实现,专门让某个程序处理过期请求 - 死信队列
为了保证消息的可靠性,比如每条消息都成功消费,需要提供一个容错机制,即:失败的消息怎么处理?
交换机
- direct交换机
允许我们将交换机和队列关联起来,指定交换机将哪种类型的消息发送给哪个队列 - topic交换机
消息会根据一个模糊的路由键转发到指定的队列,也就是是特定的一类消息可以交给特定的一类系统(程序)来处理 - rpc交换机
允许不同的程序在网络上进行通信和交互,就像调用本地函数一样。使用rpc,我们可以通过远程调用方式实现程序之间的内部通信。一般情况下,如果只是实现两个程序之间的内部通信,并没有必要借助消息队列来模拟rpc。可以使用专门的rpc框架。 - headers交换机
类似于主题和直接交换机,可以根据消息应发送到哪个队列。这种方式不是像之前那样指定一个路由键,而是根据消息的头部消息进行匹配,以确定消息要发送到哪个队列。然而,由于性能较差且相对复杂,一般情况下并不推荐使用这种方式。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。