RabbitMQ6种模式

1.1 simple简单模式

在这里插入图片描述

一对一的消息模式,生产者往同一个队列里生产,只供一个消费者。

  1. 消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)

1.2 work工作模式(资源的竞争)

在这里插入图片描述

一对多的消息模式,生产者往同一个消息队列里生产,供多个消费者消费(不会重复)。

  1. 应用场景:红包;大项目中的资源调度(任务分配系统不需知道哪一个任务执行系统在空闲,直接将任务扔到消息队列中,空闲的系统自动争抢)

1.3 publish/subscribe发布订阅(共享资源)

在这里插入图片描述

生产者生产数据,供多个消费者消费相同数据。由交换机把消息发布至所有消息队列中

  1. 相关场景:邮件群发,群聊天,广播(广告)

1.4 routing路由模式

在这里插入图片描述

因publish/subscribe发布订阅模式中消息,由交换机打到所有消息队列中不存在差异性,生产数据时带有type根据type打到不同的消息队列中

  1. 根据业务功能定义路由字符串
  2. 从系统的代码逻辑中获取对应的功能字符串,将消息任务扔到对应的队列中业务场景:error 通知;EXCEPTION;错误通知的功能;传统意义的错误通知;客户通知;利用key路由,可以将程序中的错误封装成消息传入到消息队列中,开发者可以自定义消费者,实时接收错误;

1.5 topic 主题模式(路由模式的一种)

在这里插入图片描述

routing路由模式的升级版,增加了通配符

  1. 星号井号代表通配符
  2. 星号代表多个单词,井号代表一个单词
  3. 路由功能添加模糊匹配
  4. 消息产生者产生消息,把消息交给交换机
  5. 交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费

1.6RPC模式

生产者生产消息后至消息队列,进入阻塞状态,服务器消费完后返回给客户端notify

目前有很多框架能实现rpc,dubbo;

你可能感兴趣的:(rabbitmq)