zoukankan      html  css  js  c++  java
  • 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重启前都有效。

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

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

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

     

     

     

     

  • 相关阅读:
    regulation
    Java第三方类库
    python整个小服务器
    VsFTP出现500 OOPS: cannot change directory的解决办法
    Got error 28 from storage engine
    linux下ftp操作
    linux安装JDK
    Apache + Tomcat + Linux 集群和均衡负载 (Session 同步复制) 配置实
    怎么样才能使得PL/SQL Developer不显示系统表?
    sudo 用法
  • 原文地址:https://www.cnblogs.com/xiaolang8762400/p/7469747.html
Copyright © 2011-2022 走看看