RocketMQ(七)——消息的消费

RocketMQ(七)——消息的消费,第1张

RocketMQ(七)——消息消费

文章目录
    • 消息的消费
      • 消费的类型
        • Pull方式
          • 缺点:
          • 优点:
        • Push方式
          • 缺点
          • 优点:
      • 消费的模式
        • 广播消费
        • 集群消费
        • 消费进度的保存

消息的消费 消费的类型
  • 消费者从Broker中获取消息的方式有两种:Pull(拉取)方式和Push(推送)方式
Pull方式
  • Consumer主动从Broker中获取消息,主动权在Consumer。一旦获取了批量消息,就会启动消费过程
缺点:
  • 实时性较弱,Broker中有了新的消息时,消费者不能及时发现并消费
优点:
  • 便于应用控制消息的拉取
Push方式
  • Broker 收到消息后会主动推送给Consumer,该方式获取实时性较高

  • 该方式是典型的发布-订阅模式,即Consumer向其关联的Queue注册监听器,一旦发现有新的消息到来就会触发回调,回调方法时Consumer去Queue中拉去消息。这些都是基于Consumer与Broker之间的长连接。而长连接是需要消耗资源的

缺点
  • 会占用较多的系统资源
优点:
  • 封装了对关联Queue的遍历,实时性强
消费的模式 广播消费

广播消费模式下,相同Consumer Group的每个Consumer实例都接收同一个Topic的全量消息。即:每条消息都会被发送到Consumer Group中的每个Consumer。

集群消费

集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊同一个Topic的消息。即每条消息只会被发送到Consumer Group中的某个Consumer。

消费进度的保存
  • 广播模式:消费进度保存在Consumer端,广播模式下consumer group中每个consumer都会消费所有消息,但它们的消费进度是不同。所以consumer各自保存各自的消费进度
  • 集群模式:消费进度保存在broker中。consumer group中的所有consumer共同消费一个Topic中的消息,同一条消息只会被消费一次。消费进度会参与到消费的负载均衡中,所以消费进度需要共享。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5681113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存