消息队列

一、消息模型

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


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


    未命名文件-2.png

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

  • 与观察者模式的区别:观察者模式使用同步工作,生产者和消费者不透明,也就是生产者直到自己产生的消息被哪个消费者消费了。而发布订阅异步工作,生产者只管生产消息,往频道里一扔就不管了,不关心被消费者消费掉了。
    二、应用场景
    1、异步处理:比如用户注册时发送激活邮件,把发送邮件和验证的工作给另一个程序处理,主程序发一个消息给邮件程序,立即返回继续处理后序逻辑。当然,这种应用需要系统允许异步处理。
    2、流量削峰:高并发情况下,将请求放到消息队列里,由服务器根据负载适时提取消息处理。
    3、应用解耦:各模块间不直接调用,通过消息队列选择性订阅消息,完成调用。
    三、可靠性
  1. 发送端一定能将消息放进队列
    实现方法:在本地建表,存储信息与业务数据,业务端的事务提交之后将消息发送到队列,如果成功则删除表中的数据,否则重传
  2. 接收端一定能从队列中收到消息
    实现方法:保证消息具有唯一编号,并用日志表记录已经消费的消息编号。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,...
    Bobby0322阅读 11,060评论 0 24
  • 消息队列设计精要 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终...
    meng_philip123阅读 1,585评论 1 25
  • 以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享...
    文档随手记阅读 1,940评论 0 28
  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 4,295评论 1 41
  • 元宵佳节,又一年在国外度过。 中午过后,等自己忙完了手头的事务,才发现偌大的项目部办公室就只剩我一人,多少有点静得...
    晟治弗利阅读 451评论 11 12

友情链接更多精彩内容