美文网首页
消息队列

消息队列

作者: 小码弟 | 来源:发表于2018-12-05 20:43 被阅读0次

    一、消息模型

    1. 点对点模型:消息生产者向队列中发送一个消息后,只能被一个消费者消费


      未命名文件.png
    2. 发布/订阅:生产者发送一个消息,多个消费者从该频道订阅并消费


      未命名文件-2.png

      发布订阅模式使用异步,生产者发送完消息后不等待返回,继续工作。

    • 与观察者模式的区别:观察者模式使用同步工作,生产者和消费者不透明,也就是生产者直到自己产生的消息被哪个消费者消费了。而发布订阅异步工作,生产者只管生产消息,往频道里一扔就不管了,不关心被消费者消费掉了。
      二、应用场景
      1、异步处理:比如用户注册时发送激活邮件,把发送邮件和验证的工作给另一个程序处理,主程序发一个消息给邮件程序,立即返回继续处理后序逻辑。当然,这种应用需要系统允许异步处理。
      2、流量削峰:高并发情况下,将请求放到消息队列里,由服务器根据负载适时提取消息处理。
      3、应用解耦:各模块间不直接调用,通过消息队列选择性订阅消息,完成调用。
      三、可靠性
    1. 发送端一定能将消息放进队列
      实现方法:在本地建表,存储信息与业务数据,业务端的事务提交之后将消息发送到队列,如果成功则删除表中的数据,否则重传
    2. 接收端一定能从队列中收到消息
      实现方法:保证消息具有唯一编号,并用日志表记录已经消费的消息编号。

    相关文章

      网友评论

          本文标题:消息队列

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