• rabbitmq 一些属性


    消息属性

    消息有14个属性,最常用的几种:

    deliveryMode:持久化属性

    contentType:编码

    replyTo:指定一个回调队列

    correlationId:消息id

    mandatory标志位:当mandatory标志位设置为true时,如果exchange根据自身类型和消息routeKey无法找到一个符合条件的queue,那么会调用basic.return方法将消息返还给生产者;当mandatory设为false时,出现上述情形broker会直接将消息扔掉。

    immediate标志位: 当immediate标志位设置为true时,如果exchange在将消息route到queue(s)时发现对应的queue上没有消费者,那么这条消息不会放入队列中。当与消息routeKey关联的所有queue(一个或多个)都没有消费者时,该消息会通过basic.return方法返还给生产者。概括来说,mandatory标志告诉服务器至少将该消息route到一个队列中,否则将消息返还给生产者;immediate标志告诉服务器如果该消息关联的queue上有消费者,则马上将消息投递给它,如果所有queue都没有消费者,直接把消息返还给生产者,不用将消息入队列等待消费者了。

    关于immediate标志位的使用:新版本好像已经取消了immediate标志位,因为这个"使代码库的许多部分更加复杂",rabbitmq建议在找不到消费者的时候,将消息放入另外一个队列,然后生产者订阅这个队列来查看那些消息找不到消费者。

     

    实例代码:

     

    队列的属性:

    - 持久性:如果启用,队列将会在server重启前都有效。

    - 自动删除:如果启用,那么队列将会在所有的消费者停止使用之后自动删除掉自身。

    - 惰性:如果没有声明队列,那么在执行到使用的时候会导致异常,并不会主动声明。

    - 排他性:如果启用,队列只能被声明它的消费者使用。

     

     

     

     

  • 相关阅读:
    jQuery和AngularJS的区别小分析
    Angular.element和$document的使用方法分析,代替jquery
    AngularJS中bootstrap启动
    angular 依赖注入原理
    AngularJS介绍
    箭头函数
    Object.create 函数 (JavaScript)
    forEach 方法 (Array) (JavaScript)
    Petapoco 查询 语法
    C# 方法中带默认值的参数
  • 原文地址:https://www.cnblogs.com/xiaolang8762400/p/7469747.html
Copyright © 2020-2023  润新知