日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RabbitMQ快速入门--简单队列模型

發布時間:2024/4/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RabbitMQ快速入门--简单队列模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

入門案例

?

簡單隊列模式的模型圖:

官方的HelloWorld是基于最基礎的消息隊列模型來實現的,只包括三個角色:

  • publisher:消息發布者,將消息發送到隊列queue

  • queue:消息隊列,負責接受并緩存消息

  • consumer:訂閱隊列,處理隊列中的消息

publisher實現

思路:

  • 建立連接

  • 創建Channel

  • 聲明隊列

  • 發送消息

  • 關閉連接和channel

代碼實現:

import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import org.junit.Test;import java.io.IOException; import java.util.concurrent.TimeoutException;public class PublisherTest {@Testpublic void testSendMessage() throws IOException, TimeoutException {// 1.建立連接ConnectionFactory factory = new ConnectionFactory();// 1.1.設置連接參數,分別是:主機名、端口號、vhost、用戶名、密碼factory.setHost("192.168.150.101");factory.setPort(5672);factory.setVirtualHost("/");factory.setUsername("rabbitmq");factory.setPassword("rabbitmq");// 1.2.建立連接Connection connection = factory.newConnection();// 2.創建通道ChannelChannel channel = connection.createChannel();// 3.創建隊列String queueName = "simple.queue";channel.queueDeclare(queueName, false, false, false, null);// 4.發送消息String message = "hello, rabbitmq!";channel.basicPublish("", queueName, null, message.getBytes());System.out.println("發送消息成功:【" + message + "】");// 5.關閉通道和連接channel.close();connection.close();} }

consumer實現

代碼思路:

  • 建立連接

  • 創建Channel

  • 聲明隊列

  • 訂閱消息

代碼實現:

import java.io.IOException; import java.util.concurrent.TimeoutException;public class ConsumerTest {public static void main(String[] args) throws IOException, TimeoutException {// 1.建立連接ConnectionFactory factory = new ConnectionFactory();// 1.1.設置連接參數,分別是:主機名、端口號、vhost、用戶名、密碼factory.setHost("192.168.150.101");factory.setPort(5672);factory.setVirtualHost("/");factory.setUsername("rabbitmq");factory.setPassword("rabbitmq");// 1.2.建立連接Connection connection = factory.newConnection();// 2.創建通道ChannelChannel channel = connection.createChannel();// 3.創建隊列String queueName = "simple.queue";channel.queueDeclare(queueName, false, false, false, null);// 4.訂閱消息channel.basicConsume(queueName, true, new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope,AMQP.BasicProperties properties, byte[] body) throws IOException {// 5.處理消息String message = new String(body);System.out.println("接收到消息:【" + message + "】");}});System.out.println("等待接收消息。。。。");} }

總結

基本消息隊列的消息發送流程:

  • 建立connection

  • 創建channel

  • 利用channel聲明隊列

  • 利用channel向隊列發送消息

  • 基本消息隊列的消息接收流程:

  • 建立connection

  • 創建channel

  • 利用channel聲明隊列

  • 定義consumer的消費行為handleDelivery()

  • 利用channel將消費者與隊列綁定

  • 總結

    以上是生活随笔為你收集整理的RabbitMQ快速入门--简单队列模型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。