Java编写简易rabbitmq生产者与消费者的代码
一、前言
开发时经常与其它系统用rabbitmq对接,当需要自测时,还是自己写rabbitmq生产者、消费者自测方便些。
下面总结下不用框架、使用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.生产者代码
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("运行完毕,已发送消息【" + message + "】");
channel.close();
connection.close();
}
}说明:
(1)其中的配置,按照自己的rabbitmq配置更改
(2)生产者配置了交换机名与路由键
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();
//监听该队列,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)消费者配置了监听队列
(3)消费者启动后一直开启,除非手动关闭项目运行
到此这篇关于Java编写简易rabbitmq生产者与消费者的文章就介绍到这了,更多相关Java rabbitmq生产者与消费者内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring报错:Error creating bean with name的问
这篇文章主要介绍了Spring报错:Error creating bean with name的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-08-08
springboot如何读取配置文件(application.yml)中的属性值
本篇文章主要介绍了springboot如何读取配置文件(application.yml)中的属性值,具有一定的参考价值,有兴趣的小伙伴可以了解一下2017-04-04
Spring Boot启动加载流程自动配置的底层原理(专家解读)
Spring Boot这么少的配置却能实现如此丰富的功能?为何启动一个Spring Boot应用可以变得如此简单便捷?在这个看似平凡的启动过程中,其实隐藏着一套精妙的自动化机制和源码逻辑,本文将带你深入探索 Spring Boot 的启动流程,逐步揭开自动配置的幕后奥秘2026-01-01
Java GUI进阶之流式布局管理器FlowLayout专项精讲
FlowLayout-流式布局管理器,按水平方向依次排列放置组件,排满一行,换下一行继续排列。排列方向(左到右 或 右到左)取决于容器的componentOrientation属性2022-04-04


最新评论