• RabbitMQ笔记-basicConsume、basicCancel、basicPublish等方法详解


    basicConsume:

    由服务端主动PUSH消息过来,方法接收到消息后进行处理

            string BasicConsume(string queue, bool autoAck, string consumerTag, bool noLocal, bool exclusive, IDictionary<string, object> arguments, IBasicConsumer consumer);
    
            public static string BasicConsume(this IModel model, IBasicConsumer consumer, string queue, bool autoAck = false, string consumerTag = "", bool noLocal = false, bool exclusive = false, IDictionary<string, object> arguments = null);
    
            public static string BasicConsume(this IModel model, string queue, bool autoAck, IBasicConsumer consumer);
     
            public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IBasicConsumer consumer);
     
            public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IDictionary<string, object> arguments, IBasicConsumer consumer);
    

    basicConsume方法参数说明:

    queue:队列名
    autoAck:是否自动回复Ack
    consumerTag:消费者标识
    arguments:其他参数,比如可以设置消费者优先级(x-priority)等参数
    noLocal:如果服务器不应将在此通道连接上发布的消息传递给此使用者,则为true
    exclusive:
    IBasicConsumer:

    basicGet:

    主动拉取队列中的一条消息

    BasicGetResult basicGet(String queue, boolean autoAck)
            /**
             * 从消息队列中取出第一条消息;整个方法的执行过程是首先消费队列,然后检索第一条消息,然后再取消订阅
             */
            var result = channel.basicGet(QUEUE_NAME, true);
    

    basicCancel

    取消消费者订阅

    /**
    * 取消消费者对队列的订阅关系
    * consumerTag:服务器端生成的消费者标识
    **/
    void basicCancel(String consumerTag)
    

    BasicPublish

    发送消息

    void BasicPublish(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, byte[] body);
    void BasicPublish(this IModel model, PublicationAddress addr, IBasicProperties basicProperties, byte[] body);
    void BasicPublish(this IModel model, string exchange, string routingKey, IBasicProperties basicProperties, byte[] body);
    void BasicPublish(this IModel model, string exchange, string routingKey, bool mandatory = false, IBasicProperties basicProperties = null, byte[] body = null);
    

    BasicPublish方法参数:

    • exchange:要将消息发送到的Exchange(交换器)
    • routingKey:路由Key
    • mandatory:如果为true, 消息不能路由到指定的队列时,会触发channel.BasicReturn事件,如果为false,则broker会直接将消息丢弃。(channel.BasicReturn += Channel_BasicReturn;)
    • basicProperties:其它的一些属性
    • body:消息内
  • 相关阅读:
    Eclipse 3.0.1插件方案(Java版) zt
    Vs2003使用时出现这个问题,正在郁闷中,网上找了好久,居然看到同样问题,马上拷贝来:)开心中
    Eclipse+Tomcat集成开发servletzt
    管理定律
    张小娴“禁果之味”
    上海主要特色医院一览表
    分布式网站数据库同步方案——sqlserver数据库同步复制,好文收藏之
    Eclipse 插件汇总(转载+不断更新) zt
    Eclipse零起步系列讲座 zt
    结婚这件事
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13639404.html
Copyright © 2020-2023  润新知