1. 程式人生 > 其它 >RabbitMQ的簡單學習入門

RabbitMQ的簡單學習入門

技術標籤:後端知識

文章目錄


提示:以下是本篇文章正文內容,下面案例可供參考

一、RabbitMQ的使用率?

RabbitMQ是目前訊息佇列裡面最流行的訊息協議機制。

二、使用步驟

1.引入庫

程式碼如下(示例):

 <!--.匯入RabbitMQ的客戶端依賴-->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-
client</artifactId> <version>3.4.1</version> </dependency>

2.程式碼示例

程式碼如下(示例):

準備工作:獲取連線RabbitMQ伺服器的連線物件

package cn.tg.utils;

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;

/**
 * @Author: zy
 * @ClassName:RabbitConnectionUtil
 * @Package:cn.tg.utils
 * @date:2021/1/27 14:44
 * @Description:
 */
public class RabbitConnectionUtil { public static Connection getConnection() throws Exception { //定義連線工廠 ConnectionFactory factory = new ConnectionFactory(); //設定服務地址 factory.setHost("localhost"); //埠 factory.setPort(5672); //設定賬號資訊,使用者名稱、密碼、vhost //需要啟動rabbitmq的服務端
factory.setVirtualHost("testhost"); factory.setUsername("admin"); factory.setPassword("admin"); // 通過工程獲取連線 Connection connection = factory.newConnection(); return connection; } }

1.生產者傳送訊息

package cn.tg.producer;

import cn.tg.utils.RabbitConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

/**
 * @Author: zy
 * @ClassName:Send
 * @Package:cn.tg.producer
 * @date:2021/1/27 14:50
 * @Description:
 */
public class Send {
    //佇列的名稱
    private final static String QUEUE_NAME = "q_test_01";

    public static void main(String[] argv) throws Exception{
        // 獲取到連線以及mq通道
        Connection connection = RabbitConnectionUtil.getConnection();
        // 從連線中建立通道
        Channel channel = connection.createChannel();
        // 宣告(建立)佇列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        // 訊息內容
        String message = "Hello World!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println(" [x] Sent '" + message + "'");
        //關閉通道和連線
        channel.close();
        connection.close();
    }
}

2.消費者監聽訊息

package cn.tg.consumer;

import cn.tg.utils.RabbitConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.QueueingConsumer;

/**
 * @Author: zy
 * @ClassName:Receiver
 * @Package:cn.tg.consumer
 * @date:2021/1/27 14:55
 * @Description:
 */
public class Receiver {
    //訊息佇列名稱
    private final static String QUEUE_NAME = "q_test_01";

    public static void main(String[] argv) throws Exception {
        // 獲取到連線以及mq通道
        Connection connection = RabbitConnectionUtil.getConnection();
        // 從連線中建立通道
        Channel channel = connection.createChannel();
        // 宣告佇列
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        // 定義佇列的消費者
        QueueingConsumer consumer = new QueueingConsumer(channel);
        // 監聽佇列
        channel.basicConsume(QUEUE_NAME, true, consumer);
        //接收訊息
        QueueingConsumer.Delivery delivery = consumer.nextDelivery();
        String message = new String(delivery.getBody());
        System.out.println(" [x] Received '" + message + "'");
    }
}

總結

提示:這裡對文章進行總結:
例如:以上就是今天要講的內容,本文僅僅簡單介紹了rabbitmq的基礎使用,想學深層次的內容訪問以下連結。

RabbitMq使用的教程