A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© longxf_sjz 中级黑马   /  2019-9-28 23:14  /  806 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一 工作模式简介
1 简单模式
生产者发送消息到队列中,一个消费者从队列中接收消息。ps:在RabbitMQ中消费者只能从队列接收消息。
2 工作队列模式
一个消息只能被一个消费者接收,其它消费者是不能接收到同一条消息的。
应用场景:可以在消费者端处理任务比较耗时的时候;添加对同一个队列的消费者来提高任务处理能力。
3 发布订阅模式
订阅模式与前面的两种模式比较:多了一个角色Exchange交换机,接收生产者发送的消息并决定如何投递消息到其绑定的队列;消息的投递决定于交换机的类型。ps:交换机只做消息转发,自身不存储数据。
4 路由模式
Routing 路由模式要求队列绑定到交换机的时候指定路由key;消费发送时候需要携带路由key;只有消息的路由key与队列路由key完全一致才能让该队列接收到消息。
5 通配符模式
Topics通配符模式:可以根据路由key将消息传递到对应路由key的队列;队列绑定到交换机的路由key可以有多个;通配符模式中路由key可以使用 * 和 # ;使用了通配符模式之后对于路由Key的配置更加灵活。

二 工作模式特征总结
  • 不直接Exchange交换机(默认交换机)

    • simple简单模式:一个生产者生产一个消息到一个队列被一个消费者接收
    • work工作队列模式:生产者发送消息到一个队列中,然后可以被多个消费者监听该队列;一个消息只能被一个消费者接收,消费者之间是竞争关系

  • 使用Exchange交换机;订阅模式(交换机:广播fanout、定向direct、通配符topic)

    • 发布与订阅模式:使用了fanout广播类型的交换机,可以将一个消息发送到所有绑定了该交换机的队列
    • 路由模式:使用了direct定向类型的交换机,消费会携带路由key,交换机根据消息的路由key与队列的路由key进行对比,一致的话那么该队列可以接收到消息
    • 通配符模式:使用了topic通配符类型的交换机,消费会携带路由key(*, #),交换机根据消息的路由key与队列的路由key进行对比,匹配的话那么该队列可以接收到消息


三 springboot整合rabbitMQ
     Spring Boot提供了对于AMQP的整合;消息生成方可以使用RabbitTemplate发送消息;消息消费方可以使用@RabbitListener注解接收消息。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马