Java編寫簡易rabbitmq生產(chǎn)者與消費者的代碼
一、前言
開發(fā)時經(jīng)常與其它系統(tǒng)用rabbitmq對接,當需要自測時,還是自己寫rabbitmq生產(chǎn)者、消費者自測方便些。
下面總結(jié)下不用框架、使用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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring報錯:Error creating bean with name的問
這篇文章主要介紹了Spring報錯:Error creating bean with name的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
springboot如何讀取配置文件(application.yml)中的屬性值
本篇文章主要介紹了springboot如何讀取配置文件(application.yml)中的屬性值,具有一定的參考價值,有興趣的小伙伴可以了解一下2017-04-04
淺談mybatis-plus批量保存異常及效率優(yōu)化
本文主要介紹了mybatis-plus批量保存異常及效率優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-01-01
Spring Boot啟動加載流程自動配置的底層原理(專家解讀)
Spring Boot這么少的配置卻能實現(xiàn)如此豐富的功能?為何啟動一個Spring Boot應用可以變得如此簡單便捷?在這個看似平凡的啟動過程中,其實隱藏著一套精妙的自動化機制和源碼邏輯,本文將帶你深入探索 Spring Boot 的啟動流程,逐步揭開自動配置的幕后奧秘2026-01-01
Java GUI進階之流式布局管理器FlowLayout專項精講
FlowLayout-流式布局管理器,按水平方向依次排列放置組件,排滿一行,換下一行繼續(xù)排列。排列方向(左到右 或 右到左)取決于容器的componentOrientation屬性2022-04-04

