疫情結束了,還在因爲不會rabbitmq而找不到工作嗎?

疫情結束了,還在因爲不會rabbitmq而找不到工作嗎?**

在這裏插入圖片描述
小祥一個簡單的rabbitmq初戰demo,希望給大家帶來幫助。

1.首先安裝RabbitMq

安裝RabbitMQ需要先安裝Erlang語言開發包。下載地址 http://www.erlang.org/download.html
在這裏插入圖片描述配置ERLANG環境變量。ERLANG_HOME C:\Program Files (x86)\erl-23(安裝路徑)
添加到PATH %ERLANG_HOME%\bin;
安裝RabbitMQ 下載地址 http://www.rabbitmq.com/download.html
配置RabbitMQ環境變量。RABBITMQ_SERVER C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-2.8.0(安裝路徑) 添加到PATH %RABBITMQ_SERVER%\sbin;

2.建立一個maven項目

添加依賴到pom.xml文件

<dependencies>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>3.5.3</version>
    </dependency>
    </dependencies>

3.創建生產者端

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

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        // 創建一個ConnectionFactory 工廠
        ConnectionFactory connectionFactory = new ConnectionFactory();
        // 主機
        connectionFactory.setHost("localhost");
        // 端口號
        connectionFactory.setPort(5672);
        // 用戶名
        connectionFactory.setUsername("guest");
        // 密碼
        connectionFactory.setPassword("guest");
        // 虛擬主機
        connectionFactory.setVirtualHost("/");
        Connection connection = null;
        Channel channel = null;
        try {
            // 創建連接
            connection = connectionFactory.newConnection();
            // 創建通道
            channel = connection.createChannel();
            // 發送10次數據
            for (int i = 1; i < 11; i++) {
                String msg = "第" + i + "次Hello World!";
                channel.basicPublish("", "queue1", null, msg.getBytes());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        } finally {
            // 關閉連接
            if (channel != null) {
                channel.close();
            }
            if (connection != null) {
                connection.close();
            }
        }

    }
}

4.創建消費者端

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

public class Consumer {
    private final static String QUEUE_NAME = "queue1";

    public static void main(String[] args) throws Exception {
        ConnectionFactory connectionFactory = new ConnectionFactory();
        // 主機地址
        connectionFactory.setHost("127.0.0.1");
        // 端口號
        connectionFactory.setPort(5672);
        // 用戶名
        connectionFactory.setUsername("guest");
        // 密碼
        connectionFactory.setPassword("guest");
        // 虛擬主機
        connectionFactory.setVirtualHost("/");
        // 2通過連接工廠創建連接
        Connection connection = connectionFactory.newConnection();
        // 3通過connection 創建一個Channel
        Channel channel = connection.createChannel();
        // 4 聲明一個隊列
        channel.queueDeclare(QUEUE_NAME, true, false, false, null);
        // 5.創建消費者
        QueueingConsumer queueingConsumer = new QueueingConsumer(channel);
        // 6 設置通道
        channel.basicConsume(QUEUE_NAME, true, queueingConsumer);
        while (true) {
            // 7 獲取消息
            QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();
            String msg = new String(delivery.getBody());
            System.out.println("消費端獲取到的信息: " + msg);
        }

    }
}

5.運行消費者和生產者

在這裏插入圖片描述運行結果如下,共獲得十條消息,是不是很簡單~
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章