type
status
date
slug
summary
tags
category
icon
password
notion image

消费模式

  • 集群模式,集群内只有一个消费者消费
  • 广播模式,可以被集群内所有消费者消费
  • push主动推送
  • pull被动拉去

消费参数

 

消息负载均衡

notion image
  • 连续平均分配
notion image
  • 轮流分配
    notion image
    • 机房就近分配
    notion image
    • 指定机房队列 — consumerIds指定机房
    • 手动指定
    • Hash一致
     

    offsetStore

    ${mqHome}/store/configconsumerOffset.json
    ${user_home}/.rocketmq_offsets
     

    消费者线程配置

    • consumeThreadMin
    • consumeThreadMax
    • pullBatchSize 一次拉取的消息数量
    • consumeMessageBatchMaxSize 提交到监听的数量

    Broker端配置

    • maxTransferCountOnmessageInMemory 允许拉取的最大消息条数 x
    • maxTransferByteOnmessageInMemory 允许拉取的最大消息大小 x * 1024
    • maxTransferCountOnmessageInDisk
    • maxTransferByteOnmessageInDisk

    DefaultLitePullConsumer

     

    顺序消费

    MessageListenerOrderBy

    消息过滤

    • tag隔离
    • topic隔离

    消费重试

    机制,Consumer消费失败,消息发送到延迟主题,重试次数+1,broker指定时间重新推送消费者,超过重试次数发送到死信队列

    问题

    • 消费进度提交,选取最小偏移量,还是可能存在消息重复
    • 同一个消费者组,消费者订阅tag不一致会造成消息丢失
    • 一个队列同一时间只能有一个消费者,消费队列需要相对均衡
    • clientId一致,消息不消费
    • 消息积压,brokerOffset最大偏移量与consumerOffset消息消费端的消费进度的差值
    积压的条数和大小(消费线程排查,grep ‘PAGECACHERT’ store.log | more)