• RockeyMQ的发送状态


     

     

    SEND_OK:消息正常发送成功


    FLUSH_DISK_TIMEOUT:没有在规定的时间内完成刷盘,这种状态在同步刷盘中会出现,假设请求进来,先同步内存,在同步磁盘,同步时间设置了3秒,在规定时间内没有完成,就会返回这种状态,异步刷盘不会,内存同步完后直接就返回成功了


    FLUSH_SLAVE_TIMEOUT :在主从模式下才会会出现这种状态,假设CUP爆满,主从节点来不及同步.


    SLAVE_NOT_AVAILABLE : 在从模式下,brokey是YNC_MASTER,同步双写,但如果从节点宕机了,主节点没有找到配置的从节点,返回这种状态.




    2:生产和消费的重试机制:

     

     

     

      product方发送到broker时,由于broker宕机了或者网络情况比较差的时候,进行重入机制,

      consumer去broker拉取消息的时候,或者处理完后返回状态时,broker宕机了进入重试机制

     

    product默认重试机制为2

     

     

    设置重试次数

    defaultMQProducer.setRetryTimesWhenSendFailed(0);

     

     

     

    comsumer 端重试机制

     

    int reconsumeTimes = messageExt.getReconsumeTimes();

     

     

     

    判断重试几次后不再重试,

     

     

     1 消费端重试可能消息会被重复消费,这个可以通过代码去判断,比如把keys保存到redis中,设置过期时间,消费时去判断是否被消费过

     2 一条消息无论被重试多少次,这些重试的消息的MassageID ,key都不会变的

     3 消费者集群只针对即系消费方式有效的,广播方式不提供失败重试的特性,失败后不进行消息重试,继续消费新的消息

     

    defaultMQPushConsumer.setMessageModel(MessageModel.BROADCASTING);

    
    
  • 相关阅读:
    清除Jpanel组件并重绘
    idea配置ssm框架
    java异常机制
    JavaSwing关于GridBagLayout(网格袋布局)的使用
    (趣味哈哈镜)JMF中摄像头相关的问题
    三大WEB服务器(apache lighttpd nginx) 对比分析
    在前台接收jsonp数据(练习)
    cookie存数组的方法
    接口验证每个ip每小时只能访问2次(自己实验:有待改进)
    DOM操作xml数据
  • 原文地址:https://www.cnblogs.com/HuangXingLei/p/12612090.html
Copyright © 2020-2023  润新知