美文网首页
RabbitMQ 优先级队列(消息优先级) --- 2022-0

RabbitMQ 优先级队列(消息优先级) --- 2022-0

作者: 一位先生_ | 来源:发表于2022-05-01 12:39 被阅读0次

    优先级队列,顾名思义,优先级高的消息具备优先被消费的特权。

    RabbitMQ优先级队列注意点:

    • 只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效。
    • RabbitMQ3.5版本以后才支持优先级队列。

    RabbitMQ优先级队列使用步骤

    1. 设置队列最大优先级
    2. 设置消息优先级

    设置队列最大优先级

    在声明队列的时候,通过队列属性(x-max-priority)设置队列的最大优先级,优先级的最大值为255,官方建议最好在1到10之间。
    Golang设置方式:

        // 队列属性
        props := make(map[string]interface{})
        // 设置队列最大优先级
        props["x-max-priority"] = 10
    
    // 声明队列
        q, err := ch.QueueDeclare(
            "tizi365.hello", // 队列名
            true,   // 队列持久化
            false,   // delete when unused
            false,   // exclusive
            false,   // no-wait
            props,     // 设置队列属性
        )
    
    

    提示:其他语言设置方式类似。

    设置消息优先级

    Golang设置方式:

    err = ch.Publish(
                "tizi365",     // 交换机
                "", // 路由参数
                false,
                false,
                amqp.Publishing{
                    Priority:5, // 设置消息优先级
                    DeliveryMode:2,  // 消息投递模式,1代表非持久化,2代表持久化,
                    ContentType: "text/plain",
                    Body:        []byte(body),
                })
    

    相关文章

      网友评论

          本文标题:RabbitMQ 优先级队列(消息优先级) --- 2022-0

          本文链接:https://www.haomeiwen.com/subject/brifsrtx.html