zoukankan      html  css  js  c++  java
  • 消息的确认

    1、消费端确认
    自动确认:message出队列的时候自动确认【broke】
    手动确认:message出队列之后,要应用程序去确认是否已经消费完毕
    basic提供了哪些方法来做这些事情
    1)、自动确认
    BasicGet("mytest",true);
    2)、手动确认
    BasicGet("mytest",false);
    BasicAck(result.DeliveryTag,false);
    void BasicAck(ulong deliveryTag,bool multiple)
    multiple:true =>x<deliveryTag的所有message都会被确认

    3)、手工拒绝:consumer 拒绝服务器发送过来的信息
    i:遗弃
    BasicReject(result.DeliveryTag,false);
    ii:给queue
    BasicReject(result.DeliveryTag,true);

    拒绝多个
    BasicNack();

    4)、重新递送【商家补发】
    BasicRecover();
    true 同一个consumer消费
    false 可能被其他consumer消费

    2、发布端(生产端)的确认
    1)confirm机制
    channel.ConfirmSelect();
    发送动作
    var isallpubished=channel.WaitForConfirms();


    2)tx机制 【事务控制】
    publish 送message到rabbitmq中,我们一定要知道,这个消息已经发送成功了,也就是,rabbitmq一定要告诉publish,这条消息已经被确定收到。
    try catch
    channel.TxSelect();
    发送动作
    var isallpubished=channel.TxCommit();

    异常 channe.TxRollback();

    均影响性能: confirm<tx机制【最消耗性能】

  • 相关阅读:
    css3 @page
    Python:GUI
    Python: simple drawings
    JQuery 实现多个checkbox 只选中一个
    pgwSlideshow.js
    Html5: Drawing with text
    HTML5 Video player jQuery plugin
    cSharp:反射 Reflection
    机器学习基础---无监督学习之异常检测
    机器学习作业---主成分分析PCA
  • 原文地址:https://www.cnblogs.com/sailing92/p/13711200.html
Copyright © 2011-2022 走看看