zoukankan      html  css  js  c++  java
  • activemq的高级特性:消息的可靠性

    高级特性之消息的可靠性

      可靠性分为:生产者、消费者。生产者必须让mq收到消息,消费者必须能够接收到消息并且消费成功,这就是消息的可靠性。

    1:生产者可靠性

      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

      Session.AUTO_ACKNOWLEDGE是mq自动应答,当生产者往mq发送消息的时候,当模式为queue,

      消息会自动的持久化,然后持久化之后就会通知发送者持久化成功,所以使用queue这种自动应答模式消息是可靠的。

      如果使用topic模式,默认情况下会导致消息丢失,所以该模式下要使用消息的持久化机制。

      

      如果消息要使用全部陈宫或者全部失败的话,这时候就要使用到mq事务。

      Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);    //设置为true 开启事务

      session.commit;    //事务的提交或者回滚(rollback)

      可靠性:要不就是消息的持久化或者是消息的事务。

    2:消费者可靠性

      消费者能否收到消息,消费者能不能消费成功

      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

      AUTO_ACKNOWLEDGE    //自动确认,收到消息以后,自动应答并且消费成功了。 如果有异常不会自动应答,并且会重发6次

     CLIENT_ACKNOWLEDGE    //客户端手动确认,message.acknowledge()手动确认。如果没有确定,服务停掉以后,就会自动发送给其他的消费者
     DUPS_OK_ACKNOWLEDGE  //批量自动确认,在内部根据某个算法,在接受一定数量的时候在一次性确认。
     SESSION_TRANSACTED     //createSession设置额为true的时候,就开启事务。一批消息,session.commit()自动提交。

     
     
  • 相关阅读:
    sql评估已过期
    解决电脑弹窗
    清除电脑缓存,解决电脑卡
    vant小程序实现表单提交(时间组件,弹出层组件)
    jquery每两秒执行函数
    git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
    阿里云服务器http转https
    微信小程序错误码40029
    1366:Incorrect string value: 'xE4xBBx8AxE5xA4xA9' for column 'content' at row 1 [ SQL语句 ] :
    每日一题 为了工作 2020 0308 第六题
  • 原文地址:https://www.cnblogs.com/orange-time/p/10643298.html
Copyright © 2011-2022 走看看