热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RabbitMQ(五)之快速编写HelloRabbitMQ

一、搭建项目创建Maven项目导入rabbitmq包com.rabbitmqamqp-clien


一、搭建项目

创建Maven项目

导入rabbitmq包


com.rabbitmq
amqp-client
3.6.5


二、代码

生产者代码

public static void main(String[] args) {
//1、 创建连接工厂
ConnectionFactory cOnnectionFactory= new ConnectionFactory();
// RabbitMQ服务IP
connectionFactory.setHost("127.0.0.1");
// RabbitMQ服务端口
connectionFactory.setPort(5672);
// 选择VirtualHost
connectionFactory.setVirtualHost("/");
Connection connection;
Channel channel=null;
try {
//2、 通过工厂创建连接
cOnnection= connectionFactory.newConnection();
//3、通过连接创建Channel
channel = connection.createChannel();
String exchange = "";
String routingKey = "te01";
AMQP.BasicProperties basicProperties = null;
for (int i = 0; i <5; i++) {
String body = "Producer:"+i;
//发送消息
channel.basicPublish(exchange, routingKey, basicProperties, body.getBytes());
}
// 按顺序关闭连接
channel.close();
connection.close();
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
}

消费者代码

public static void main(String[] args) {
//1、 创建连接工厂
ConnectionFactory cOnnectionFactory= new ConnectionFactory();
// RabbitMQ服务IP
connectionFactory.setHost("127.0.0.1");
// RabbitMQ服务端口
connectionFactory.setPort(5672);
// 选择VirtualHost
connectionFactory.setVirtualHost("/");
try {
//2、 通过工厂创建连接
Connection cOnnection= connectionFactory.newConnection();
//3、通过连接创建Channel
Channel channel = connection.createChannel();
//4、创建队列
String queueName="te01";//队列名称
channel.queueDeclare(queueName, true, false, false, null);
//5、创建消费者
QueueingConsumer queueingCOnsumer= new QueueingConsumer(channel);
//6、配置channel
channel.basicConsume(queueName,true,queueingConsumer);
while (true){
QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();
String body = new String(delivery.getBody());
System.out.println("消费者:"+body);
}
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

三、查看控制界面

进入界面:http://127.0.0.1:15672

执行生产者代码,查看控制面板发送消息队列里面有10条消息

执行消费者代码,控制台则会打印出消息列队里面的消息,再次查看控制台消息列队则为0。

源码下载

本文地址:https://blog.csdn.net/qq_36306590/article/details/85949357



推荐阅读
  • RabbitMQ消息分发策略与确认机制
    本文详细介绍了RabbitMQ的消息分发轮询机制以及消息确认(Message Acknowledgment)功能,通过实例演示了如何确保消息可靠传递。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 利用RabbitMQ实现高效延迟任务处理
    本文详细探讨了如何利用RabbitMQ实现延迟任务,包括其应用场景、实现原理、系统设计以及具体的Spring Boot实现方式。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
author-avatar
发酵床养殖菌种
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有