zoukankan      html  css  js  c++  java
  • RabbitMQ 消息应答机制(message acknowledgments)

    消息应答机制是一个很重要的功能,它能保证消息队列中的某个消息是否被成功处理。如果RabbitMQ server收到Consumer端发来的应答信号,就会将Consumer刚才处理的消息删除,并发送下一个消息给Consumer去处理;如果Consumer端没有回发确认消息给RabbitMQ server,那么当前消息就一直存在消息队列中,如果Consumer端的连接断掉了,RabbitMQ server就会将该消息发送给另外的Consumer去处理。

    因此可以看出,消息应答机制是针对Consumer来说的。

    设置在Consumer端设置消息应答很简单,共有2步:

    1、设置Consumer时,指定当前的Consumer为消息应答方式;

    2、Consumer在处理完当前消息后,回发一个确认消息给RabbitMQ server即可。

    话不多说,上代码!

    using (var connection = factory.CreateConnection()) {
                    using (var channel = connection.CreateModel()) {
                        channel.QueueDeclare(queue: "q.log.info",
                                             durable: false,
                                             exclusive: false,
                                             autoDelete: false,
                                             arguments: null);
    
                        channel.BasicQos(0, 1, false);
    
                        var consumer = new EventingBasicConsumer(channel);
    
                        consumer.Received += (model, ea) => {
                            var body = ea.Body;
                            var message = Encoding.UTF8.GetString(body);
                            Console.WriteLine("{0}", message);
                            //处理完消息后,回发一个确认消息给RabbitMQ server,说明当前消息已被成功处理
                            channel.BasicAck(ea.DeliveryTag, false);
                        };
                        channel.BasicConsume(queue: "q.log.info",
                                             noAck: false,//将消息应答功能开启  true:不开消息应答功能  false:开启消息应答功能
                                             consumer: consumer);
                       
                        Console.ReadLine();
                    }
                }
  • 相关阅读:
    jQuery .css("width")和.width()的区别
    用jquery写一个滑动TAB 例子
    D
    4 Values whose Sum is 0
    Hibernate学习之hql 与sql
    BigDecimal进行精确运算
    Date类与SimpleDateFormat类中parse()方法和format()方法
    单例模式下的懒汉和饿汉模式
    Java中Date类型详解
    Spring @Column的注解详解
  • 原文地址:https://www.cnblogs.com/williamwsj/p/8109919.html
Copyright © 2011-2022 走看看