美文网首页
9.RabbitMQ 总结

9.RabbitMQ 总结

作者: xialedoucaicai | 来源:发表于2018-08-03 16:27 被阅读0次

前几节将RabbitMQ的几种模型都学习了一下,这次来做个总结,同时给出一个实际应用的例子。

1.总结

简单队列

简单队列

模型:一个生产者,一个队列,一个消费者
描述:消息将被唯一的消费者处理
生产者:使用默认的exchange,routingkey指定为queueName
消费者:监听queueName

work queue

Work Queue

模型:一个生产者,一个队列,多个消费者
描述:消息被消费者A OR 消费者B处理
生产者:使用默认的exchange,routingkey指定为queueName
消费者:多个消费者监听同一个queueName

其他重要概念
ack:消息确认
默认为true,表示Exchange在发送消息给消费者后,就认为收到了确认,将删除该消息;
如果为false,消费者需要在收到并处理消息之后,给MQ发送手动确认,MQ在收到确认后,才会将消息删除;
未收到确认时,仍会继续投递,只是所有消息都以unacknowledged的状态保存下来,待未发ack的消费者断连了,消息将重新投递给其他存活的消费者。
手动ack可以保证某一个消费者断连,消息将会发送给其他消费者,而不会丢失。

持久化:保证RabbitMQ挂了,队列中的消息仍能恢复。
需要队列声明时参数设为持久化,消息发送时属性设置为持久化。

basicQos: 只有在收到消费者的ack之后才会向该消费者投递下一条消息,否则会投递给其他收到ack的消费者。
可以实现能者多劳

exchange:从消费者接收消息,推送消息给队列,推送规则取决于exchange的类型
fanout:广播 select * from user;
direct:单播 select * from user where user_name = 'zhangsan';
topic:组播 select * from user where user_name like 'zhang%';

Publish/Subscribe

Publish/Subscribe
描述:广播,exchange取值fanout,消息被消费者A AND 消费者B处理
生产者:指定exchange类型为fanout,发消息给exchange,routingkey不指定
消费者:绑定队列到交换器,exchange会将消息推送给所有绑定的队列

Routing

Routing
描述:单播,exchange取值direct,消息将会发给routingKey完全匹配的队列
生产者:指定exchange类型为direct,发消息给exchange,同时指定routingkey
消费者:绑定队列到交换器,同时指定routingKey,exchange会将消息发给routingKey完全匹配的队列

topics

topics
描述:组播,exchange取值topic,消息将会发给routingKey满足一定规则的队列,匹配规则:#匹配0个或多个单词 *匹配1个单词
生产者:指定exchange类型为topic,发消息给exchange,同时指定routingkey
消费者:绑定队列到交换器,同时指定routingKey,exchange会将消息发给routingKey满足一定规则的队列

2.实际应用

MQ的一个典型应用就是异步处理,比如用户注册后,需要给用户发邮件+发短信,可以先给用户响应注册成功,然后将发邮件+发短信的任务交给MQ来慢慢处理。这里有一个ES和MQ结合的例子,和上面注册+发邮件+发短信的思想差不多。
其他的使用场景,可以参考牧码人视频中的第一节课。

3.拓展阅读

推荐一篇美团技术团队的消息队列设计精要,真正的干货硬货,要慢慢嚼

相关文章

  • 9.RabbitMQ 总结

    前几节将RabbitMQ的几种模型都学习了一下,这次来做个总结,同时给出一个实际应用的例子。 1.总结 简单队列 ...

  • 9.RabbitMQ实现RPC

    RPC,即远程过程调用,其流程如下: RPC实现RPC,则需要客户端(生产者)发送请求消息,服务端(消费者)回复响...

  • 专题总结(待续。。。)

    质粒总结 引物总结 抗体总结 细胞系总结 模式动物总结 机制功能总结

  • 工作总结――让你欢喜让你忧

    哇哈哈,工作总结...... 工作中,我们常会被要求写各种总结,活动总结、销售总结、培训总结、月总结、季度总结.....

  • 工作总结万能公式

    总结汇报是职场上经常遇到的事,有周总结、月总结、季度总结、年中总结、年终总结、重点项目总结、重要环节总结等...

  • 缺不了的总结

    从小到大,缺不了的总结。知识点总结,读书电影的观后感,章节总结,学科总结,学期总结,新年总结,工作周总结月总结年中...

  • Java 知识点总结

    Java技术总结 总结内容如下: 1.语法总结, 2 面向对象总结, 3 线程总结, 4 输入输出流总结, 5 集...

  • 写在三十六岁(5)

    总结 又是一年十二月,各种总结开始写起,工作总结、家庭总结、财务总结…… 总结有它一定的存在的...

  • 阿里腾讯头条美团等iOS面试总结

    阿里iOS面试总结 头条iOS面试总结 腾讯iOS面试总结 百度iOS面试总结 美团iOS面试总结

  • (原创)15条适用于领导讲话、工作总结的二级标题,满满干货,收藏

    (作者:茶水泡面) 领导讲话稿、单位工作总结(年度总结、季度总结、单项总结、专题总结,甚至月总结哪一样都是要写的)...

网友评论

      本文标题:9.RabbitMQ 总结

      本文链接:https://www.haomeiwen.com/subject/yixtmftx.html