zoukankan      html  css  js  c++  java
  • 【RocketMQ】RocketMQ消息堆积的问题怎么处理?

     RocketMQ消息堆积的问题

    1.发生的原因:

      由于Consumer故障导致消费着节点全部宕机,生产者还在不停的投递消息到Broker,消息被挤压在Broker没有被消费;

    2.消息堆积导致的问题:

      过多的数据不仅占用磁盘空间,还会影响MQ性能;

    3.解决方案:

      分三种情况:

      情况0,如果消息是可以被丢弃的,那么就修改代码直接将代码中获取的消息直接丢弃,不做任何处理;

      情况1, Topic中MessageQueue的数量大于Consumer的实例数量,可以将Consumer扩容,MessageQueue 会进行Rebalance重新分配给Consumer实例,此时多个Consumer实例可以迅速消费掉堆积的消息,但是要考虑到的后续如果业务中有DB操作,DB是否支持这么高的读写操作;

      情况2, Topic中MessageQueue的数量小于Consumer的实例数量,此时直接扩容Consumer的实例数量是没用的,扩容后的Consumer实例仍然无法消费MessageQueue里面的消息; 此时可以修改项目代码,新建一个临时的Topic,制定临时Topic的MessageQueue数量为多个,然后再启动多个临时消费实例;此时Consumer将堆积的Topic里面对应的消息,不处理,收到后直接丢到新的Topic里面去,让消费者去消费

  • 相关阅读:
    安装开发工具
    CSS基础
    CSS动画
    CSS效果
    CSS布局
    CSS预处理语言
    React开发笔记
    Vue2.0学习笔记
    Vue-cli3.0开发笔记
    项目开发技巧
  • 原文地址:https://www.cnblogs.com/july-sunny/p/14975050.html
Copyright © 2011-2022 走看看