从消费者的角度出发,分析一下消息消费的两种方式:

  1. push方式

  2. pull方式

push方式

消息消费的过程:

1. mq接收到消息

2. mq主动将消息推送给消费者(消费者需提供一个消费接口)

mq属于主动方,消费者属于一种被动消费,一旦有消息到达mq,会触发mq推送机制,将消息推送给消费者,不管消费者处于何种状态。

优点:

1. 消费者代码较少:对于消费者来说,只需提供一个消费接口给mq即可;mq将接收到的消息,随即推送到指定的消费接口

2. 消息实时性比较高:对于消费者来说,消息一旦到达mq,mq会立即推送给消费者

缺点:

1.消费者属于被动方,消息量比较大时,对消费者性能要求比较高;若消费者机器资源有限,可能会导致压力过载,引发宕机的情况。

2.对消费者可用性要求比较高:当消费者不可用时,会导致很push失败,在mq方需要考虑至少推送成功一次,这块的设计下章节会做说明。

pull方式

消息消费的过程:

1.消费端采用轮询的方式,从mq服务中拉取消息进行消费

2.消费完成通知mq删除已消费成功的消息

3.继续拉取消息消费

对于消费者来说,是主动方,可以采用线程池的方式,根据机器的性能来增加或缩小线程池的大小,控制拉取消息的速度,可以很好的控制自身的压力。

优点

1.消费者可以根据自己的性能主动控制消息拉去的速度,控制自己的压力,不至于把自己弄跨

2.实时性相对于push方式会低一些

3.消费者属于主动方,控制权更大一些

缺点:

1.消费方需要实现消息拉取的代码

2.消费速度较慢时,可能导致mq中消息积压,消息消费延迟等

总结

  1. 消费者性能较好,对实时性要求比较高的,可以采用push的方式

  2. 消费者性能有限,建议采用pull的方式

  3. 整体上来说,主要在于消费者的性能,机器的性能如果没有问题,push和pull都是可以的

  4. 大家有什么看法,可以留言一起讨论,希望本文对你有所帮助

mq消费的几种方式(从消费者角度出发)相关推荐

  1. mq中消息消费的几种方式

    mq系列文章 本章内容 从消费者的角度出发,分析一下消息消费的两种方式: push方式 pull方式 push方式 消息消费的过程: mq接收到消息 mq主动将消息推送给消费者(消费者需提供一个消费接 ...

  2. 谈谈mq消息消费的几种方式

    mq系列文章 对mq了解不是很多的,可以看一下下面两篇文章: 聊聊mq的使用场景 聊聊业务系统中投递消息到mq的几种方式 聊聊消息消费的几种方式 如何确保消息至少消费一次 如何保证消息消费的幂等性 本 ...

  3. 聊聊mq中消息消费的几种方式

    mq系列文章 对mq了解不是很多的,可以看一下下面两篇文章: 聊聊mq的使用场景 聊聊业务系统中投递消息到mq的几种方式 聊聊消息消费的几种方式 如何确保消息至少消费一次 如何保证消息消费的幂等性 本 ...

  4. 通过小程序积分营销工具提升用户消费的三种方式

    在微信小程序的运营中,我们经常会通过小程序积分营销工具搭建积分体系去提升用户的粘性,最终实现用户的转化消费.那么,积分体系如何运营,成为我们需要思考的问题. 我们都知道,积分体系最重要的元素的就是&q ...

  5. kafka消费的三种模式_kafka消费者的三种模式(最多/最少/恰好消费一次)

    几种不同的注册方式 subscribe方式:当主题分区数量变化或者consumer数量变化时,会进行rebalance: 注册rebalance监听器,可以手动管理offset 不注册监听器,kafk ...

  6. java mq_java实现MQ消息收发两种方式

    定义: 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.简单理解:蓝牙配对 jar包依赖: com.rab ...

  7. RabbitMQ(六)——Spring boot中消费消息的两种方式

    前言 上一篇博客中,我们只是简单总结了Spring boot中整合RabbitMQ的操作,针对消息消费的两种方式只是简单给了一个实例,这篇博客,我们进一步总结关于Spring boot消息消费的相关功 ...

  8. 翻转链表II[翻转链表3种方式+dummyHead/头插法/尾插法]

    翻转链表 前言 一.翻转链表中间部分 二.dummyHead&头插法&尾插法 1.一次扫描 + 翻转链表(另一次扫描) 2.一次扫描&头插法&尾插法(进阶) 总结 参考 ...

  9. RocketMq : 消费消息的两种方式 pull 和 push

    文章目录 1.概述 两种方式的优缺点对比: push pull 1.概述 原创在:https://blog.csdn.net/zhangcongyi420/article/details/905483 ...

最新文章

  1. 种子之父--布莱恩-科恩
  2. CR--同事分享学习
  3. Ajax接触及对跨域的简单理解
  4. java重写6,java重写equals()方法和hashCode()方法
  5. C#在WinForm中打开控制台显示
  6. oracle model 分组,【已解决】关于Oracle分组函数高级用法(按照N条分组并生成唯一号)...
  7. UUID工具类及使用
  8. java textvaluechanged 全选删除不触发_js动态改变input的值不触发input的change事件的解决办法...
  9. Android系统(62)---Alarm的机制
  10. python冒号声明类型_Python 函数参数有冒号 声明后有- 箭头 返回值注释 参数类型注释...
  11. 在线JSON格式化工具
  12. 二叉树的非递归遍历(转载)
  13. Tkinter实现模拟鼠标单击四位数字验证码自动刷新功能
  14. SQL:从入门到“精通”
  15. C语言—gotoxy()函数
  16. flutter引入高德地图_Flutter接入高德地图后运行报错
  17. data[i] is underfined
  18. 一文解释Micro-F1, Macro-F1,Weighted-F1
  19. win101909要不要更新_近年最稳的Win10更新?Win10 1909值得升级吗
  20. 数学在计算机方面的应用论文参考文献,数学论文参考文献

热门文章

  1. 数据架构:数据中心 主备、双活
  2. Excel如何一键删除重复行?Leo老师告诉你
  3. 云服务器1:云服务器能干什么
  4. 简单制作一个Python聊天机器人
  5. 学编程有什么用?零基础小白可以学吗?
  6. firefox非量子版自定义搜索引擎
  7. java 程序题 二分法查找二维数组(Dichotomy)
  8. 微软Azure给openAI提供了多少机器资源
  9. 提高 Python 代码的可读性,你需要知道这10个技巧
  10. 玩转Linux与运维岗(23)