RabbitMQ第一种消息模型--直连模型
生活随笔
收集整理的這篇文章主要介紹了
RabbitMQ第一种消息模型--直连模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RabbitMQ簡單模式–直連,相當于點對點連接一樣
在上圖的模型中,有以下概念:
P:生產者,也就是要發送消息的程序
C:消費者:消息的接受者,會一直等待消息到來。
queue:消息隊列,圖中紅色部分。類似一個郵箱,
可以緩存消息;生產者向其中投遞消息,消費者從其中取出消息。
應用場景我們可以應用于用戶的登錄,登錄以后向消息隊列中發送一條登錄消息,后臺讀取到消息可以對用戶登錄積分加一
代碼如下:
連接消息隊列的工具類
生產者
package com.zuoan;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.zuoan.utils.RabbitMQUtils; import org.junit.Test;import java.io.IOException; import java.util.concurrent.TimeoutException;/*** @Description: TODO* @Author: 黃石軍* @CreateTime: 2022/4/9 15:53* @Company:*/ public class Provider {@Testpublic void testSendMessage() throws IOException, TimeoutException {Connection connection = RabbitMQUtils.getConnection("192.168.128.100");//獲取連接中通道Channel channel = connection.createChannel();//將通道與消息隊列綁定//參數一:隊列名稱,參數二:是否持久化,參數三:是否獨占隊列,參數四:是否在消費完成后自動刪除隊列,channel.queueDeclare("hello",false,false,false,null);//發布消息//參數一:交換機名稱,參數二:隊列名稱,參數三:消息額外屬性,參數四:消息內容channel.basicPublish("","hello",null,"hello rabbitmq".getBytes());RabbitMQUtils.closeChannelAndConnection(channel,connection);}}消費者
package com.zuoan;import com.rabbitmq.client.*; import com.zuoan.utils.RabbitMQUtils;import java.io.IOException; import java.util.concurrent.TimeoutException;/*** @Description: TODO* @Author: 黃石軍* @CreateTime: 2022/4/9 16:14* @Company:*/ public class Consumer {public static void main(String[] args) throws IOException, TimeoutException {Connection connection = RabbitMQUtils.getConnection("192.168.128.100");//創建連接通道Channel channel = connection.createChannel();//通道綁定對象channel.queueDeclare("hello",false,false,false,null);//消費消息//參數一:隊列名稱 參數二:開始消費時自動確認機制 參數三:消費時的回調接口channel.basicConsume("hello",true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("new String(body) = "+ new String(body));}});// channel.close(); // connection.close();} }每運行一次provider都會向消息隊列中添加一條消息,consumer一直運行著不會停止,取出隊列中的消息
總結
以上是生活随笔為你收集整理的RabbitMQ第一种消息模型--直连模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP S4 MM配置详解之一:全局设置
- 下一篇: 如何成为企业急需的技术人才:掌握这些技能