<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                用 Java 編寫兩個程序。發送單個消息的生產者和接收消息并打印出來的消費者。 <br/> 在下圖中,P 是我們的生產者,C 是我們的消費者。中間的框是一個隊列,在 RabbitMQ 代 表使用者保留的消息緩沖區。 ![](https://img.kancloud.cn/64/0e/640ea81d676e6c4205c1e1ee6ee67217_1387x143.jpg) <br/> 步驟如下: **1. `pom.xml`添加依賴** ```xml <dependencies> <!--rabbitmq 依賴客戶端--> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</version> </dependency> <!--操作文件流的一個依賴--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> </dependencies> <!--指定 jdk 編譯版本--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> ``` **2. 固定一個隊列的名字** ```java public class QueueName { public final static String QUEUE_HELLO = "queue.hello"; } ``` **3. 生產者** ```java public class Producer { public static void main(String[] args) throws Exception { // 1. 連接rabbitmq服務器 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("192.168.0.107"); factory.setUsername("admin"); factory.setPassword("admin"); // 2. 注意:Channel 與 Connection 使用完后是需要關閉的,但這里使用了語句try-with-resources, // 該語句可以在資源使用完后自動關閉資源。 try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) { /** * 聲明一個隊列。 * queueDeclare(String var1, boolean var2, boolean var3, boolean var4, Map<String, Object> var5) * var1: 隊列名稱 * var2: 隊列里面的消息是否持久化。false(默認)不持久化、true持久化 * var3: 該隊列是否只供一個消費者進行消費,即消息是否進行共享。false共享、true共享 * var4: 是否自動刪除。即當最后一個消費者斷開連接后該隊列是否自動刪除。true自動刪除、false不刪除 * var5:其他參數 */ channel.queueDeclare(QueueName.QUEUE_HELLO, false, false, false, null); String message = "hello world"; /** * 發送一個消息。 * basicPublish(String var1, String var2, BasicProperties var3, byte[] var4) * var1: 發送到哪個交換機,""也是一個交換機類型。 * var2: 路由的 key 是哪個 * var3: 其他參數 * var4: 發送的消息 */ channel.basicPublish("", QueueName.QUEUE_HELLO, null, message.getBytes()); System.out.println("消息發送完畢."); } } } ``` **4. 消費者** ```java public class Consumer { public static void main(String[] args) throws Exception { // 1. 連接rabbitmq服務器 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("192.168.0.107"); factory.setUsername("admin"); factory.setPassword("admin"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); System.out.println("等待接收消息."); //推送的消息如何進行消費的接口回調 DeliverCallback deliverCallback = (consumerTag, delivery) -> { String message = new String(delivery.getBody()); System.out.println("接收到的消息: " + message); }; //取消消費的一個回調接口,如在消費的時候隊列被刪除掉了 CancelCallback cancelCallback = (consumerTag) -> { System.out.println("消息消費被中斷."); }; /** * 2. 消費者消費消息。 * basicConsume(String var1, boolean var2, DeliverCallback var3, CancelCallback var4) * var1: 消費哪個隊列 * var2: 消費成功之后是否要自動應答。true自動應答, false手動應答 * var3: 進行消費的接口回調 * var4: 取消消費的接口回調 */ channel.basicConsume(QueueName.QUEUE_HELLO, true, deliverCallback, cancelCallback); } } ``` **5. 測試** (1)先啟動生成者,控制臺輸出如下。 ``` 消息發送完畢. ``` (2)啟動消費者,控制臺輸出如下。 ``` 等待接收消息. 接收到的消息: hello world ``` **** 案例代碼:https://gitee.com/flymini/codes01/tree/master/rabbitmq_/com-learn-rabbitmq01
                  <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>

                              哎呀哎呀视频在线观看