zoukankan      html  css  js  c++  java
  • rabbitmq queue_declare arguments参数注释

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26656329/article/details/77891793
    说明
    官方文档
    在创建queue时可以指定很多参数,可以限制队列的大小、消息的死信时间、优先级等等。

    queue消息条数限制
    x-max-length
    该参数是非负整数值
    官方文档
    限制加入queue中消息的条数。先进先出原则,超过10条后面的消息会顶替前面的消息。

    credentials = pika.PlainCredentials(username='mq', password='654321')
    connection = pika.BlockingConnection(
    pika.ConnectionParameters(
    host='localhost', port=5672, virtual_host='/',
    credentials=credentials
    )
    )
    channel = connection.channel()
    channel.exchange_declare(exchange='tests', durable=True)
    channel.queue_declare(queue='test', durable=True, arguments={'x-max-length': 10}) # 队列中最多10条消息
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    queue消息容量限制
    x-max-length-bytes
    该参数是非负整数值
    官方文档
    该参数和x-max-length目的一样限制队列的容量,但是这个是靠队列大小(bytes)来达到限制。

    queue消息存活时间
    x-message-ttl
    该参数是非负整数值
    官方文档
    创建queue时设置该参数可指定消息在该queue中待多久,可根据x-dead-letter-routing-key和x-dead-letter-exchange生成可延迟的死信队列。

    channel.queue_declare(
    queue='test',
    durable=True,
    arguments={'x-message-ttl': 60000} # 消息的存活时间是60秒
    )
    1
    2
    3
    4
    5
    死信队列
    x-dead-letter-routing-key
    x-dead-letter-exchange
    官方文档
    创建queue时参数arguments设置了x-dead-letter-routing-key和x-dead-letter-exchange,会在x-message-ttl时间到期后把消息放到x-dead-letter-routing-key和x-dead-letter-exchange指定的队列中达到延迟队列的目的。

    arguments = {
    'x-message-ttl': 10000, # 延迟时间 (毫秒)
    'x-dead-letter-exchange': exchange, # 延迟结束后指向交换机(死信收容交换机)
    'x-dead-letter-routing-key': queue, # 延迟结束后指向队列(死信收容队列),可直接设置queue name也可以设置routing-key
    }
    channel.queue_declare(
    queue='test',
    durable=True,
    arguments=arguments
    )
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    queue存活时间
    x-expires
    官方文档
    创建queue时参数arguments设置了x-expires参数,该queue会在x-expires到期后queue消息,亲身测试直接消失(哪怕里面有未消费的消息)。

    channel.queue_declare(
    queue='testss',
    durable=True,
    arguments={'x-expires': 6000} # 队列的存活时间是6秒
    )
    1
    2
    3
    4
    5
    消息优先级
    x-max-priority
    官方文档
    版本限制3.5+
    创建queue时arguments可以使用x-max-priority参数声明优先级队列 。该参数应该是一个整数,表示队列应该支持的最大优先级。
    ​​建议使用1到10之间。目前使用更多的优先级将消耗更多的资源(Erlang进程)。
    设置该参数同时设置死信队列时或造成已过期的低优先级消息会在未过期的高优先级消息后面执行。
    该参数会造成额外的CPU消耗。

    channel.queue_declare(queue='test', durable=True, arguments={'x-max-priority': 10})
    1
    合理利用参数达到实现的目的。
    ---------------------
    作者:偶爱喝可乐
    来源:CSDN
    原文:https://blog.csdn.net/qq_26656329/article/details/77891793?utm_source=copy
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    CF div2 325 C
    CF div2 325 B
    CF div2 325 A
    CF div2 322 C
    CF div2 322 B
    CF div2 322 A
    Sudoku Solver POJ 2676 LightOJ 1397
    逆序数(归并排序 )
    RMQ算法
    Socket编程:listen()函数英文翻译
  • 原文地址:https://www.cnblogs.com/shizhijie/p/9799278.html
Copyright © 2011-2022 走看看