<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                優先級的范圍為`[0, 255]`,通常選擇`[0, 10]`,數字越大優先級越高。因為需要排序,所以數字越大消耗的 cpu 也越多。設置優先級可以有下面兩種方法。 [TOC] # 1. 通過UI頁面添加一個具有優先級的隊列 ![](https://img.kancloud.cn/8c/14/8c14742a88fa08a4f4074cadd8448b66_1566x637.jpg) <br/> # 2. 通過代碼創建一個優先級隊列 需要在消費端設置隊列的優先級,也需要在生產者對消息設置優先級,消息的優先級必須小于等于隊列的優先級。 **1. 封裝連接 MQ 服務器的工具類** ```java public class RabbitMQUtils { /** * 連接RabbitMQ服務器 */ public static Channel getChannel() throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("me.rabbitmq.com"); factory.setUsername("admin"); factory.setPassword("admin"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); return channel; } } ``` **2. 生產者** ```java public class MessageProducer { private static final String QUEUE_NAME = "queue.hello.priority"; public static void main(String[] args) throws Exception { try (Channel channel = RabbitMQUtils.getChannel()) { //給消息添加priority屬性,該屬性就是優先級 AMQP.BasicProperties properties = new AMQP.BasicProperties().builder().priority(5).build(); for (int i = 1; i < 11; i++) { String message = "info" + i; if (i == 5) { channel.basicPublish("", QUEUE_NAME, properties, message.getBytes()); } else { channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); } System.out.println(MessageProducer.class.getSimpleName() + "[生產了消息]: " + message); } } } } ``` **3. 消費者** ```java public class MessageConsumer { private static final String QUEUE_NAME = "queue.hello.priority"; public static void main(String[] args) throws Exception { Channel channel = RabbitMQUtils.getChannel(); Map<String, Object> params = new HashMap(16); //設置隊列的優先級 params.put("x-max-priority", 10); channel.queueDeclare(QUEUE_NAME, true, false, false, params); System.out.println(MessageConsumer.class.getSimpleName() + "[等待消費..]"); DeliverCallback deliverCallback = (consumerTag, delivery) -> { String message = new String(delivery.getBody()); System.out.println(MessageConsumer.class.getSimpleName() + "[收到消息]: " + message); }; channel.basicConsume(QUEUE_NAME, true, deliverCallback, (consumerTag) -> { }); } } ``` **3. 測試** (1)先啟動生產者,生產如下消息。 ``` MessageProducer[生產了消息]: info1 MessageProducer[生產了消息]: info2 MessageProducer[生產了消息]: info3 MessageProducer[生產了消息]: info4 MessageProducer[生產了消息]: info5 MessageProducer[生產了消息]: info6 MessageProducer[生產了消息]: info7 MessageProducer[生產了消息]: info8 MessageProducer[生產了消息]: info9 MessageProducer[生產了消息]: info10 ``` (2)啟動消費者,消費了如下消息。消息`info5`優先級最高,所以最先被消費。 ``` MessageConsumer[收到消息]: info5 MessageConsumer[收到消息]: info1 MessageConsumer[收到消息]: info2 MessageConsumer[收到消息]: info3 MessageConsumer[收到消息]: info4 MessageConsumer[收到消息]: info6 MessageConsumer[收到消息]: info7 MessageConsumer[收到消息]: info8 MessageConsumer[收到消息]: info9 MessageConsumer[收到消息]: info10 ``` **** 案例代碼:https://gitee.com/flymini/codes01/tree/master/rabbitmq_/com-learn-rabbitmq04
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看