疫情結束了,還在因爲不會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.運行消費者和生產者
運行結果如下,共獲得十條消息,是不是很簡單~