java实现rabbitmq_RabbitMQ搭建(2)-Java简单实现
一、pom引入包
com.rabbitmq
amqp-client
3.6.5
二、创建消息发送者
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
/**
* 消息生成者
*/
public class Producer {
public final static String QUEUE_NAME = "rabbitMQ.test";
public static void main(String[] args) throws IOException, TimeoutException {
// 创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 设置RabbitMQ相关信息
factory.setHost("localhost");
// factory.setUsername("guest");
// factory.setPassword("guest");
// factory.setPort(5672);
// 创建一个新的连接
Connection connection = factory.newConnection();
// 创建一个通道
Channel channel = connection.createChannel();
// 声明一个队列
// 1.String queue表示队列名称
// 2.boolean durable是否持久化
// 3.exclusive是否是独占队列(创建者可以使用的私有队列,断开后自动删除)
// 4.boolean autoDelete当所有消费者客户端连接断开时是否自动删除队列
// 5.Map arguments队列的其他参数
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello RabbitMQ";
// 发送消息到队列中
// 1.String exchange交换机名称
// 2.String routingKey队列映射的路由key
// 3.BasicProperties props消息的其他属性
// 4.byte[] body发送信息的主体
channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
System.out.println("Producer Send +'" + message + "'");
// 关闭通道和连接
channel.close();
connection.close();
}
}
三、创建消息接收者
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.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
/**
* 消息接收者
*/
public class Customer {
private final static String QUEUE_NAME = "rabbitMQ.test";
public static void main(String[] args) throws IOException, TimeoutException {
// 创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 设置RabbitMQ地址
factory.setHost("localhost");
// 创建一个新的连接
Connection connection = factory.newConnection();
// 创建一个通道
Channel channel = connection.createChannel();
// 声明要关注的队列
// channel.queueDeclare(QUEUE_NAME, false, false, true, null);
System.out.println("Customer Waiting Received messages");
// DefaultConsumer类实现了Consumer接口,通过传入一个频道,
// 告诉服务器我们需要那个频道的消息,如果频道中有消息,就会执行回调函数handleDelivery
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte[] body) throws IOException {
String message = new String(body, "UTF-8");
System.out.println("Customer Received '" + message + "'");
}
};
// 自动回复队列应答 -- RabbitMQ中的消息确认机制
channel.basicConsume(QUEUE_NAME, true, consumer);
}
}
四、测试
1.运行Customer消息接收者开启服务
2.运行Producer消息发送者
3.可以看到Customer打印出Customer Received 'Hello RabbitMQ'
java实现rabbitmq_RabbitMQ搭建(2)-Java简单实现相关推荐
- flex java 开发环境搭建_Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)
Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立) 2019年12月07日 阅读数:7 这篇文章主要向大家介绍Flex+JAVA+BlazeDS开发环境配置(Java工程 ...
- java开发环境安装原理,java开发环境搭建 java开发环境的完整搭建过程
想了解java开发环境的完整搭建过程的相关内容吗,Rosalh在本文为您仔细讲解java开发环境搭建的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java开发环境搭建步骤,java开发环 ...
- 前几天在头条上收到一条私信,内容大致是这样的:“我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?”
前几天在头条上收到一条私信,内容大致是这样的:"我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?" 不知道有没有人有类似的问题, ...
- wim10系统怎么装java_w10系统怎么安装java开发环境|w10安装java开发环境的方法
w10系统怎么安装java开发环境?java开发环境搭建 for java新学者不清楚的话,可以看看以下的教程. 具体方法如下: 1.下载开发工具包(JDK).对于不同的操作系统,可下载的文件格式不同 ...
- day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格
1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...
- 编写运行最简单的java程序——使用记事本编写java程序
编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...
- 几步教你轻松搭建一个Java Web项目
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:张丰哲 www.jianshu.com/p/ab6a9eaa ...
- Linux Java Web 服务器搭建之tomcat安装
Linux Java Web 服务器搭建之tomcat安装 一 Tomcat 简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是 ...
- Java内存缓存-通过Map定制简单缓存
缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快.通过缓存,可以高效地重用之前检索或计算的数据. 为什么要用缓 ...
最新文章
- 为什么有些老板要注册很多家公司
- iOS之CAGradientLayer属性简介和使用
- 无论你在学什么语言,都能有小姐姐来陪着你一起学习!
- video 满屏显示_HTML5 video进入全屏和退出全屏的实现方法
- 迁移 Express 到函数计算
- 使用代码创建SAP CRM服务请求文档的subject测试数据
- bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...
- MyBatis学习--高级映射
- 有道词典java下载电脑版下载手机版下载安装_【有道词典官方下载】有道词典PC版下载_多特软件站...
- [读书笔记]小决心还是大决心
- CAD如何使用全屏显示
- PyQt5-Label背景颜色和文本颜色的设置
- SqlMap免Python环境绿色版下载
- 关于勾股数的规律及证明
- ftp打开方式更改为资源管理器方法
- 手机如何压缩照片?压缩方法分享
- mfc7420调整复印浓度_理光AFICIO复印机如何调节复印浓度
- storm the 少儿英语_幼儿英语热身小游戏
- 分布式数据访问层(DAL)
- 打印机 HP LaserJet 1018安装教程
热门文章
- 常用的文件后缀都有哪些?
- css大图切割,利用CSS切割图片技术来动态显示图片
- 商战传奇:周鸿祎死磕雷军的背后的三重玄机
- 常用10个Excel快捷键,提高工作效率
- EXCEL解析:使用poi解析xlsx和xls后缀的excel文件
- Android通知栏—Notification(一)
- 2020哈工大深圳学硕上岸,控制原理133,英一84.
- ORACLE中的KEEP()使用方法
- 七日之都账号服务器,永远的7日之都服务器数据互通吗_永远的7日之都iOS和安卓能一起玩吗_玩游戏网...
- Data too long for column ‘xxxx‘ at row 1 解决办法