Java編寫簡易rabbitmq生產(chǎn)者與消費者的代碼
一、前言
開發(fā)時經(jīng)常與其它系統(tǒng)用rabbitmq對接,當需要自測時,還是自己寫rabbitmq生產(chǎn)者、消費者自測方便些。
下面總結下不用框架、使用java編寫簡易rabbitmq的方法。
二、代碼
1.導入jar包
(1)如果是maven,那就用
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.3.4</version> </dependency>
(2)如果沒用maven,那就找一個amqp-client-3.3.4.jar
文件,然后引入項目
2.生產(chǎn)者代碼
package RABBIT_MQ; import com.rabbitmq.client.*; import java.io.IOException; import java.util.concurrent.TimeoutException; public class RabbitMQSender { //交換機 private final static String exchange_name = "x.mySys.test"; //路由鍵 private final static String route_key = "topmess"; public static void main(String[] args) throws IOException, TimeoutException { //定義一個鏈接工廠 ConnectionFactory connectionFactory = new ConnectionFactory(); //設置服務地址 connectionFactory .setHost("10.123.123.123"); //設定端口 connectionFactory .setPort(5673); //設定用戶名 connectionFactory .setUsername("myuser"); //設定密碼 connectionFactory .setPassword("mypass"); //設定虛擬機 connectionFactory .setVirtualHost("my_host"); //從mq工具類獲取連接信息 Connection connection = connectionFactory.newConnection(); //獲取一個通道 Channel channel = connection.createChannel(); String message = "Hello World!"; channel.basicPublish(exchange_name, route_key, null, message.getBytes()); System.out.println("運行完畢,已發(fā)送消息【" + message + "】"); channel.close(); connection.close(); } }
說明:
(1)其中的配置,按照自己的rabbitmq配置更改
(2)生產(chǎn)者配置了交換機名與路由鍵
3.消費者代碼
package RABBIT_MQ; import java.io.IOException; import java.util.concurrent.TimeoutException; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; public class RabbitMQReceiver { private static String queue_name="q.mySys.test"; public static void main(String[] args) throws IOException, TimeoutException { //定義一個鏈接工廠 ConnectionFactory connectionFactory = new ConnectionFactory(); //設置服務地址 connectionFactory .setHost("10.123.123.123"); //設定端口 connectionFactory .setPort(5673); //設定用戶名 connectionFactory .setUsername("myuser"); //設定密碼 connectionFactory .setPassword("mypass"); //設定虛擬機 connectionFactory .setVirtualHost("my_host"); //從mq工具類獲取連接信息 Connection connection = connectionFactory.newConnection(); //獲取一個通道 Channel channel = connection.createChannel(); //監(jiān)聽該隊列,false代表手動確認 channel.basicConsume(queue_name,false,new DefaultConsumer(channel){ public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties basicProperties, byte[] body) throws IOException{ System.out.println("接收到的消息:"+ new String(body,"UTF-8")); } }); System.out.println("運行完畢,等待mq接收消息"); } }
說明:
(1)其中的配置,按照自己的rabbitmq配置更改
(2)消費者配置了監(jiān)聽隊列
(3)消費者啟動后一直開啟,除非手動關閉項目運行
到此這篇關于Java編寫簡易rabbitmq生產(chǎn)者與消費者的文章就介紹到這了,更多相關Java rabbitmq生產(chǎn)者與消費者內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式
MongoDB是一種非關系型數(shù)據(jù)庫,通過文檔存儲數(shù)據(jù),適用于大規(guī)模數(shù)據(jù)存儲和高并發(fā)訪問,這篇文章主要介紹了SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式,感興趣想要詳細了解可以參考下文2023-05-05Kotlin中?StateFlow?或?SharedFlow?的區(qū)別解析
Kotlin協(xié)程中的StateFlow和SharedFlow是響應式數(shù)據(jù)流,分別用于UI狀態(tài)管理和事件通知,StateFlow有初始值,只保留最新值,適用于UI狀態(tài)管理;SharedFlow沒有初始值,可以配置緩存大小,適用于事件通知,感興趣的朋友一起看看吧2025-03-03