在RabbitMQ 消息队列服务的官网中提供了几种常用的使用场景,这里来介绍一下。
一、hello world 最简单的使用场景
RabbitMQ hello world
这是 RabbitMQ 最简单的使用场景,生产者直接将消息发送到Queue 队列中,不需要使用 Exchange 交换机对象。
一个生产者、一个消费者的场景,也不需要特殊配置RabbitMQ的客户端。
二、Work Queues 工作队列
RabbitMQ Work Queues
Work Queues 工作队列主要适合执行资源密集型任务。一个生产者创建的任务,需要配置多个消费者来执行任务。
这种模式下,存在任务均匀分配和消费者竞争执行的两个情况。
三、Publish/Subscribe 发布/订阅
RabbitMQ Publish/Subscribe
发布/订阅模式需要使用到Exchange 交换机,Exchange 的类型为fanout。
初始化环境时,需要将若干个队列绑定到 fanout Exchange 上。
工作中,Exchange 接受到的每一条消息,都会广播给所有与自身绑定的队列中。
这种场景适合同一个任务,需要由多个消费者分别执行的情况。
四、Routing 路由
RabbitMQ Routing
路由模式下的Exchange 交换机的类型为 Direct 。
初始化环境时,Direct Exchange 通过绑定键和Queue队列进行绑定,每个队列都有选择性的接受部分消息(和绑定键匹配的)。
工作中,Exchange 接受到的消息中的路由键和绑定键进行匹配,匹配成功则转发到相应的Queue队列中。
这个场景适合对任务进行分类处理的情况。
五、Topics 主题
RabbitMQ Topics
主题模式下的Exchange 交换机类型为Topic 。
Topics 模式和Routing 路由模式很相似,唯一区别在于路由键。Topic exchange 的路由键可以去进行模糊匹配。